ausführen Ich habe einige andere Themen referenziert und es kommt die folgende Codierung, aber es funktioniert nicht. Ich erlaube es, Befehlsfenster zu erstellen und benutze "/ k" -Argument, während das Fenster geöffnet bleibt, damit ich seine Ausgabe verfolgen kann.Wie man Befehlszeile mit Admin-Rechten in C#
Ich kann jedoch die Warnung aus dem Fenster sehen, dass der Befehl Administratorrechte ausführen muss. Wie kann ich es in Admin-Rechten ausführen?
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.");
}
EDITED:
Versuchen von "cmd.exe" auf "runas.exe" Ändern
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.");
}
ich denke, * * Sie, dass vorher, indem Sie sicherstellen lösen sollte Ihre Anwendung erhöht UAC hat, finden https://stackoverflow.com/questions/6412896/giving-application-elevated-uac –
/user: Administrator nicht eine Liste von Parametern für cmd .. Sie sicher, dass Sie Runas nicht gemeint? – BugFinder
Danke @BugFinder, ich habe "Runas" in StartInfo hinzugefügt, aber es hilft nicht. –