このエントリーをはてなブックマークに追加


プログラムが「管理者として実行」されているかどうか確認するサンプルコード

実行しているプログラムが管理者権限「管理者として実行」されているかどうか確認するサンプルコードになります。

動作確認環境

  • Windows 10 ver.21H1
  • .NET Framework 4.7.2
  • Visual Studio 2019
  • コンソールアプリケーション

参考記事

サンプルコード

サンプルコードは上記参考記事リンクのコードそのままです。
一般ユーザで実行した時と、管理者として実行した時で表示されるメッセージが変わります。

本サンプルコードを使用したOSS

本サンプルコードを使用したOSSを公開しています。
右クリックメニューに「日付フォルダの作成」が追加され本日日付のフォルダが作成されるフリーソフトとなります。
初回のみレジストリ登録が必要となるため、本サンプルコードと同様のロジックがあり、管理者として実行を促すメッセージを表示させています。

C#

class Program
{
    internal static void Main(string[] args)
    {
        if (IsAdministrator())
        {
            System.Windows.MessageBox.Show("管理者として実行されています。");
        }
        else
        {
            System.Windows.MessageBox.Show("管理者として実行されていません。");
        }
    }

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

}

Visual Basic (VB)

Module IsAdmin

    Sub Main()
        If IsAdministrator() Then
            MsgBox("管理者として実行されています。")
        Else
            MsgBox("管理者として実行されていません。")
        End If
    End Sub

    Function IsAdministrator() As Boolean
        Dim identity As System.Security.Principal.WindowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent()
        Dim principal As New System.Security.Principal.WindowsPrincipal(identity)
        Return principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator)
    End Function

End Module

以上、C#, Visual Basic によるプログラムが管理者として実行されているかどうか確認するサンプルコードでした。


添付ファイル: file01.png 110件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-10-05 (火) 20:42:50