扩展这个问题:检测是否以管理员身份运行有或没有提升的权限?
如果“以管理员身份运行”的帐户是本地管理员,则投票最多的答案有效,但如果您使用域管理员帐户,则变量 isProcessAdmin 返回 false。相比之下,UAC 在提升权限时接受域管理员作为有效帐户(在 c:\windows\ 中创建文件夹,以管理员身份运行等)...我如何修改 UACHelper.IsProcessElevated 所以它也考虑到这种情况?
扩展这个问题:检测是否以管理员身份运行有或没有提升的权限?
如果“以管理员身份运行”的帐户是本地管理员,则投票最多的答案有效,但如果您使用域管理员帐户,则变量 isProcessAdmin 返回 false。相比之下,UAC 在提升权限时接受域管理员作为有效帐户(在 c:\windows\ 中创建文件夹,以管理员身份运行等)...我如何修改 UACHelper.IsProcessElevated 所以它也考虑到这种情况?
您需要将域值传递给 IsInRole:
// DOMAINNAME\Domain Admins RID: 0x200
bool isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator)
|| principal.IsInRole(0x200);