プログラムでVistaの管理者、C#のようにcmd.exeを実行します
-
21-08-2019 - |
質問
私は、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);
...
アッシュートッシュ
所属していません StackOverflow