programmatisch cmd.exe als Administrator in Vista, C #
-
21-08-2019 - |
Frage
Ich habe ein Visual Studio-Setup und Bereitstellung-Projekt. Ich habe einen .cmd-Skript in hinzugefügt. Das Skript würde Administratorrechten ausführen müssen. Wenn der Benutzer auf dem setup.exe klickt, fordert UAC den Benutzer zur Admin-Berechtigungen. So ging ich davon aus, dass alle Prozesse erstellt und aufgerufen innerhalb setup.exe im Admin-Kapazität ausgeführt werden. Also habe ich das Setup meiner Konsolenanwendung aufrufen, die den folgenden Code enthält.
ProcessStartInfo p1 = new ProcessStartInfo();
p1.UseShellExecute = true;
p1.Verb = "runas";
p1.FileName = "cmd.exe";
Process.Start(p1);
So sollte es gearbeitet hat, wie es unter Administrator-Raum ausgeführt wird.
Ich möchte cmd.exe durch c # Prozessklasse laufen, wie ein administrator.I'm Windows Vista ausgeführt wird.
Ich habe versucht, hat nicht funktioniert! Was kann ich tun?
Lösung
Versuchen Sie, die runas
Ausführen Befehl :
...
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);
...
(Und ich glaube nicht, dass Sie eine explizite UseShellExecute benötigen)
Andere Tipps
Just Try this, Dies funktionierte für mich.
...
using System.Diagnostics;
...
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.Verb = "runas";
startInfo.Arguments = "/env /user:" + "Administrator" + " cmd";
Process.Start(startInfo);
...
Ashutosh