【发布时间】:2017-08-22 09:30:30
【问题描述】:
我参考了其他一些主题,它出现了以下编码,但它不起作用。我允许它创建命令窗口并使用“/k”参数保持窗口打开,以便我可以跟踪它的输出。
但是,我可以从窗口中看到该命令需要管理员权限才能执行的警告。如何以管理员权限执行?
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.");
}
已编辑:
尝试从“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.");
}
【问题讨论】:
-
我认为您应该通过确保您的应用程序已提升 UAC 来提前解决这个问题,请参阅stackoverflow.com/questions/6412896/…
-
/user:Administrator 不是列出的 cmd 参数集.. 你确定你不是指 runas?
-
谢谢@BugFinder,我在 StartInfo 中添加了“runas”,但没有帮助。
-
首先不要调用cmd.exe...调用runas ....
-
runas 如所评论的那样可以解决问题,请在此处查看更多信息stackoverflow.com/questions/133379/…
标签: c# cmd admin-rights