質問

私は、Visual Studioのセットアップと展開プロジェクトを持っています。私はそれで.CMDスクリプトを追加しました。スクリプトの実行には管理者権限が必要になります。ユーザーがsetup.exeをクリックすると、UACは、管理者権限をユーザーに要求します。だから私は作成して、setup.exe内で呼び出さすべてのプロセスは、管理能力に実行されることを想定しました。だから私は、セットアップは、次のコードが含まれている私のコンソールアプリケーションを呼び出して作っています。

ProcessStartInfo p1 = new ProcessStartInfo();
p1.UseShellExecute = true;
p1.Verb = "runas";
p1.FileName = "cmd.exe";
Process.Start(p1);
それは、管理者のスペースの下で実行されますと、

だから、働いてきたはずです。

私は、Windows Vistaを実行してadministrator.I'mとしてC#のプロセスのクラスを介してcmd.exeを実行したい。

私が試しました 動作しませんでした!私は何ができますか?

役に立ちましたか?

解決

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を必要としないと思います)。

他のヒント

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

...

using System.Diagnostics;

...

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

...

アッシュートッシュ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top