6

ビジュアル スタジオのセットアップと展開プロジェクトがあります。.cmd スクリプトを追加しました。スクリプトを実行するには、管理者権限が必要です。ユーザーが setup.exe をクリックすると、UAC はユーザーに管理者権限を要求します。したがって、setup.exe 内で作成および呼び出されるすべてのプロセスは、管理者として実行されると想定しました。そこで、次のコードを含むコンソール アプリケーションを呼び出すセットアップを作成しました。

ProcessStartInfo p1 = new ProcessStartInfo();
p1.UseShellExecute = true;
p1.Verb = "runas";
p1.FileName = "cmd.exe";
Process.Start(p1);

したがって、管理者スペースで実行されているため、機能するはずです。

管理者として C# プロセス クラスを介して cmd.exe を実行したいと考えています。Windows Vista を実行しています。

やってみたけどダメ!私に何ができる?

4

2 に答える 2

10

runas コマンドを実行してみてください:

...

using System.Diagnostics;

...

string UserName = "user name goes here";
ProcessStartInfo p1 = new ProcessStartInfo();
  p1.FileName = "runas";
  p1.Arguments = String.Format("/env /u:{0} cmd", UserName);
Process.Start(p1);

...

(そして、明示的なUseShellExecuteは必要ないと思います)

于 2009-03-20T18:32:32.503 に答える
6

これを試してみてください、これは私のために働きました。

...

using System.Diagnostics;

...

ProcessStartInfo startInfo = new ProcessStartInfo();
  startInfo.UseShellExecute = true;            
  startInfo.Verb = "runas";
  startInfo.Arguments = "/env /user:" + "Administrator" + " cmd";
Process.Start(startInfo);

...

アシュトッシュ

于 2009-05-18T15:03:45.507 に答える