我试着用
Cypes.winll.shell 32.()
以确定运行过程是否由Admins组中的用户启动,但我得到的结果不一致/不正确。
在windows 7专业安装上,当以不是Administrator但是administrators组的memebr的用户登录时,我得到
>>> ctypes.windll.shell32.IsUserAnAdmin()
0但是用户在admins组。
当我以管理员身份登录时,我在windows服务器2008机器上得到了预期的答案;
>>> ctypes.windll.shell32.IsUserAnAdmin()
1有人知道/有什么提示可以说明为什么我在win7框中返回0,即使用户在管理员组中吗?
谢谢,
马特。
发布于 2011-11-11 14:30:41
这是UAC。如果你跑得更高,你就会看到你期望的行为。但是使用UAC下的标准令牌,即使在管理组中,用户也没有管理员权限。
对于特殊管理员用户帐户,UAC不应用,并且该特殊用户下的进程总是被赋予一个特权令牌。因此,您看到的区别不是与操作系统,而是与用户。以Windows 7上特殊管理员帐户的身份登录,并确保其行为与服务器2008框相同。
https://stackoverflow.com/questions/8095187
复制相似问题