2

この質問を拡張します:昇格された特権の有無にかかわらず、管理者として実行されているかどうかを検出しますか?

「管理者として実行」するアカウントがローカル管理者である場合、最も投票数の多い回答が機能しますが、ドメイン管理者アカウントを使用する場合、変数 isProcessAdmin は false を返します。対照的に、UAC は、特権を昇格するときにドメイン管理者を有効なアカウントとして受け入れます (c:\windows\ にフォルダーを作成する、管理者として実行するなど)...その場合も考慮されるように UACHelper.IsProcessElevated を変更するにはどうすればよいですか? ?

4

1 に答える 1

4

ドメイン値を IsInRoleに渡す必要があります。

// DOMAINNAME\Domain Admins RID: 0x200
bool isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator)
               || principal.IsInRole(0x200);
于 2012-12-18T14:38:31.293 に答える