似乎有大量帖子询问如何检查程序是否以管理员身份运行或如何将程序设置为在 Windows 中以管理员身份运行,但我的问题是如何在程序未实际运行的情况下检查程序是否配置为以管理员身份运行?我也需要能够以自动方式检查这一点。
我知道我可以右键单击一个 exe 并检查程序是否配置为以管理员身份运行,但我需要一种方法来自动检查,因为我正在运行的应用程序需要知道某个 .exe 是否配置为以管理员身份运行并根据该属性做出决定。
答案1
标准 Windows UI 中有两个地方可以判断可执行文件或快捷方式是否配置为以管理员身份运行。
打开文件/快捷方式的属性,然后...
- 为了快捷方式只需单击高级按钮即可看到以管理员身份运行标志。
- 对彼此而言可执行文件和快捷方式打开兼容性选项卡。
这两个位置的设置效果是一样的,但是并不相同。
第一个是快捷方式的属性,与快捷方式绑定。您可以通过在网络位置的快捷方式上设置属性,然后在另一台计算机上运行快捷方式来测试这一点。在快捷方式运行之前,系统会提示您提升权限。
第二个(兼容性)存储在设置它的计算机的注册表中,如果没有其他机制来传播这些设置,在一台计算机上进行的设置将不会自动显示在另一台计算机上。这些存储在注册表中的两个位置,用于每个用户或所有用户的应用程序:
全部用户:HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
每用户:HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
可以使用首选语言中可用的标准注册表就绪组件,以编程方式和脚本形式读取这些内容。