Domanda

Ho una configurazione di Visual Studio e progetto di distribuzione. Ho aggiunto uno script .cmd in esso. Lo script avrebbe bisogno dei privilegi di amministratore per l'esecuzione. Quando l'utente fa clic sul file setup.exe, UAC richiede all'utente autorizzazioni di amministratore. Così ho pensato che tutti i processi creati e chiamati all'interno setup.exe verrà eseguito in capacità di admin. Così ho fatto la messa a punto chiamare il mio applicazione console che contiene il seguente codice.

ProcessStartInfo p1 = new ProcessStartInfo();
p1.UseShellExecute = true;
p1.Verb = "runas";
p1.FileName = "cmd.exe";
Process.Start(p1);

Quindi dovrebbe aver lavorato come è gestito sotto spazio amministratore.

Voglio correre cmd.exe attraverso Classe C # processo come un administrator.I'm esegue Windows Vista.

ho provato non ha funzionato! Cosa posso fare?

È stato utile?

Soluzione

Prova eseguendo il runas comando :

...

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);

...

(E non credo che avete bisogno di un UseShellExecute esplicito)

Altri suggerimenti

Basta provare questo, questo ha funzionato per me.

...

using System.Diagnostics;

...

ProcessStartInfo startInfo = new ProcessStartInfo();
  startInfo.UseShellExecute = true;            
  startInfo.Verb = "runas";
  startInfo.Arguments = "/env /user:" + "Administrator" + " cmd";
Process.Start(startInfo);

...

Ashutosh

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top