[C#] プロセスを管理者権限か一般権限を指定して実行する

2023-08-09 (水)

管理者権限でプロセスを実行する方法です。また反対に、管理者権限で実行中のプロセスから一般権限で別のプロセスを実行する方法です。

環境

  • .NET 7.0.400
  • C# 11.0
  • Visual Studio 2022 Version 17.7.0
  • Windows 11 Pro 22H2 22621.2134

結果

管理者権限でプロセスを実行する

一般権限のプロセスから実行すると、UAC のダイアログが表示されます。
UseShellExecute = true を指定する必要があります。

Process.Start(new ProcessStartInfo
{
    FileName = @"C:\Sample.exe",
    UseShellExecute = true,
    Verb = "RunAs",
});

一般権限でプロセスを実行する

非公式の方法のようですが、explorer.exe を使用する方法が簡単でした。
https://mdb-blog.blogspot.com/2013/01/nsis-lunch-program-as-user-from-uac.html

Process.Start("explorer.exe", @"C:\Sample.exe");

感謝

管理者権限で実行する

管理者権限プロセスから一般権限で実行する

GitHub

2023-08-09 (水)