私は他のトピックを参照していますが、以下のコーディングがありますが、うまくいきません。私はそれがコマンドウィンドウを作成し、その出力をトレースできるようにウィンドウを開いたままにして "/ k"引数を使用できるようにします。C#でadmin権限でコマンドラインを実行する方法
ただし、コマンドの実行に管理者権限が必要であるという警告がウィンドウから表示されます。どうすれば管理者権限で実行できますか?
public void ClearArpCache() {
ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe", "/user:Administrator \" cmd /k arp -d \""); // same as "netsh interface ip delete arpcache"
processStartInfo.RedirectStandardOutput = true;
//processStartInfo.CreateNoWindow = true;
//processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
processStartInfo.UseShellExecute = false;
processStartInfo.StandardOutputEncoding = Encoding.Default;
processStartInfo.Verb = "runas";
Process.Start (processStartInfo);
UnityEngine.Debug.Log ("ARP table cache cleared.");
}
編集:それは "runasコマンド" を使用して失敗した理由
は "cmd.exeの" へ "runas.exe" ちょうど明らか
public void ClearArpCache() {
ProcessStartInfo processStartInfo = new ProcessStartInfo("runas.exe", "/user:Administrator \" cmd /k arp -d \""); // same as "netsh interface ip delete arpcache"
processStartInfo.RedirectStandardOutput = true;
//processStartInfo.CreateNoWindow = true;
//processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
processStartInfo.UseShellExecute = false;
processStartInfo.StandardOutputEncoding = Encoding.Default;
Process.Start (processStartInfo);
UnityEngine.Debug.Log ("ARP table cache cleared.");
}
私は*あなたがhttps://stackoverflow.com/questions/6412896/giving-application-elevated-uac –
/ユーザーを参照してください、あなたのアプリケーションは、UACが上昇していることを確認することによって、あらかじめことを解決すべきだと思う*:管理者は、 cmdの列挙されたセットではありません。あなたは確かにrunasを意味していませんでしたか? – BugFinder
ありがとう@BugFinder、私はStartInfoに "runas"を追加しましたが、それは役に立ちません。 –