我想检测我的程序是否通过“以管理员身份运行”启动。在两台机器上它的工作方式是:
new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent()).IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator)
因为当我运行程序时,默认情况下它们不会以管理员身份运行,所以我可以这样检查。
然而,在另一台机器上(这台机器禁用了 Win7 和 UAC),当我在那里启动任何程序时,它会自动以管理员权限启动,而无需“右键单击 -> 以管理员身份运行”。我可以以某种方式过滤掉这个实例吗?
背景很简单,在第一次启动时,它应该阻止用户将其启动,但如果用户每次都启动它,则无论如何都不应该在意。
希望这是有道理的, 马蒂
答案 0 :(得分:0)
我发现注册表中“HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System”中的“EnableLUA”设置实际上设置为 0,因此 UAC 已完全禁用并以管理员身份启动所有内容,因此我将只需为此值添加一个检查为 1 :)