a livello di codice eseguire cmd.exe come amministratore in Vista, C #
-
21-08-2019 - |
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?
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