检查程序是否通过“以管理员身份运行”启动

时间:2021-06-11 16:04:59

标签: c# .net

我想检测我的程序是否通过“以管理员身份运行”启动。在两台机器上它的工作方式是:

new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent()).IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator)

因为当我运行程序时,默认情况下它们不会以管理员身份运行,所以我可以这样检查。

然而,在另一台机器上(这台机器禁用了 Win7 和 UAC),当我在那里启动任何程序时,它会自动以管理员权限启动,而无需“右键单击 -> 以管理员身份运行”。我可以以某种方式过滤掉这个实例吗?

背景很简单,在第一次启动时,它应该阻止用户将其启动,但如果用户每次都启动它,则无论如何都不应该在意。

希望这是有道理的, 马蒂

1 个答案:

答案 0 :(得分:0)

我发现注册表中“HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System”中的“EnableLUA”设置实际上设置为 0,因此 UAC 已完全禁用并以管理员身份启动所有内容,因此我将只需为此值添加一个检查为 1 :)