在 Windows 7 上,我有一个命令行程序由于文件写入权限错误而失败,并弹出烦人的消息UAC http://en.wikipedia.org/wiki/User_Account_Control每次我运行来自“未知发布者”的命令行程序时都会出现对话框。
但是,如果我通过右键单击并选择“以管理员身份运行”来启动控制台,则安装工作正常,即使 UAC 对话框仍然存在。
我的用户已经是“管理员”组的成员,那么“以管理员身份运行”到底做了什么才能让我的安装工作?
我的具体问题是:“以管理员身份运行”有什么作用?到目前为止,两个答案都没有解决这个问题。 (例如,它是否以“管理员”用户身份运行新进程?还是以当前用户身份运行该进程,但具有提升的权限?如果是,是什么权限?这与我从我的帐户获得的权限有何不同?用户是否属于“管理员”组?
(具体来说,我正在使用来自来源锻造 http://en.wikipedia.org/wiki/SourceForge,不是常规的 CMD 窗口,但我认为这并不重要。这一切都是在通过在来自 python.org 的新安装的 Python3 MSI 上运行“python allocate_setup.py”来安装 Python“distribute”包时进行的。它是 64 位 Windows 上的 32 位 Python。看在 Windows 7 上安装 Python 并分发会出现“写入失败...权限被拒绝” https://stackoverflow.com/questions/8951862)
当您登录 Windows 时,会创建一个访问令牌。这可以识别您、您所属的群组以及您的特权。并且需要注意的是,用户是否是管理员取决于该用户是否是Administrators组的成员。
如果没有 UAC,当您运行程序时,它会获取访问令牌的副本,这将控制程序可以访问的内容。
使用 UAC,当您运行程序时,它会获得受限的访问令牌。这是原始访问令牌,其中“管理员”已从组列表中删除(以及一些其他更改)。即使您的用户是管理员组的成员,该程序也无法使用管理员权限。
当您选择“以管理员身份运行”并且您的用户是管理员时,程序将使用原始的不受限制的访问令牌启动。如果您的用户不是管理员,系统会提示您输入管理员帐户,并且程序将在该帐户下运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)