.NET Framework で、自プロセスが管理者権限で動いているかどうかのチェックだけできればいいのであれば、前回説明した方法よりずっと簡単になります。

public static bool IsInAdminRule()
{
    WindowsIdentity identity = WindowsIdentity.GetCurrent();
    WindowsPrincipal principal = new WindowsPrincipal(identity);
    return principal.IsInRole(WindowsBuiltInRole.Administrator);
}

これだけ。

一見、単に Administrators グループに入っているかどうかのチェックになりそうですが、WindowsPrincipal.IsInRole メソッドの説明を読むと、引数に Administrators グループを渡した場合は、管理者権限が有効になっているかどうかを返すことが分かり、実際そのように動作します。

昨日30分ぐらい調べてたのは何だったんですかねぇ…

Trackback

no comment untill now

Add your comment now