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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top