J'ai référencé d'autres sujets et il vient le codage suivant, mais cela ne fonctionne pas. Je lui permets de créer une fenêtre de commande et d'utiliser l'argument "/ k" en gardant la fenêtre ouverte pour que je puisse retrouver sa sortie.Comment faire pour exécuter la ligne de commande avec admin droite dans C#
Cependant, je peux voir l'avertissement de la fenêtre que la commande a besoin des droits d'administrateur à exécuter. Comment puis-je l'exécuter en droits d'administrateur?
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.");
}
ÉDITÉE:
Essayez de changer de "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.");
}
i * que * vous devez résoudre ce préalable en vous assurant que votre application a élevé UAC, voir https://stackoverflow.com/questions/6412896/giving-application-elevated-uac –
/utilisateur: administrateur est pas un ensemble de paramètres listés pour cmd .. vous sûr que vous ne vouliez pas dire runas? – BugFinder
Merci @BugFinder, j'ai ajouté "runas" dans StartInfo, mais ça n'aide pas. –