Devo avviare un programma da riga di comando con System.Diagnostics.Process.Start() ed eseguirlo come amministratore.Avvia processo con amministratore a destra in C#
Questa azione verrà eseguita anche da un'attività pianificata ogni giorno.
Devo avviare un programma da riga di comando con System.Diagnostics.Process.Start() ed eseguirlo come amministratore.Avvia processo con amministratore a destra in C#
Questa azione verrà eseguita anche da un'attività pianificata ogni giorno.
ho trovato, ho bisogno di impostare l'operazione pianificata per eseguire l'applicazione con privilegi più elevati in Impostazioni generali.
Ho appena cerco di usare:
Process p = new Process();
p.StartInfo.Verb = "runas";
questo funziona bene se sto correndo il mio programma come amministratore, ma quando l'operazione pianificata gestisce, non ci vuole il '' runas in considerazione penso.
Yepaaah. Ottima soluzione. Grazie per la condivisione. hai fatto la mia giornata! – Nasenbaer
Se si utilizzano attività pianificate, è possibile impostare l'utente e la password per l'attività da eseguire.
Utilizzare le credenziali di amministratore per l'attività e si andrà bene.
Con Process.Start
, è necessario fornire il UserName
e Password
per il ProcessStartInfo
:
Process p = new Process("pathto.exe");
p.StartInfo.UserName = "Administrator";
p.StartInfo.Password = "password";
p.Start();
Un'opzione sicura migliore per eseguire un processo con login e password è utilizzare la classe SecureString per crittografare la password. Ecco un esempio di codice:
string pass = "yourpass";
string name ="login";
SecureString str;
ProcessStartInfo startInfo = new ProcessStartInfo();
char[] chArray = pass.ToCharArray();
fixed (char* chRef = chArray)
{
str = new SecureString(chRef, chArray.Length);
}
startInfo.Password = str;
startInfo.UserName = name;
Process.Start(startInfo);
È necessario consentire codice non sicuro nelle proprietà del progetto.
Spero che questo aiuto.
Tenere presente che l'archiviazione di una password in chiaro in un programma non è mai sicura finché qualcuno può esaminare l'applicazione e vedere cosa contiene. L'utilizzo di SecureString per convertire una password memorizzata in una password SecureString non lo rende più sicuro, poiché la password di testo non crittografato sarebbe comunque presente.
Il modo migliore per utilizzare SecureString è quello di passare un singolo carattere per la conversione in un momento in qualche modo che non necessita di avere la password in chiaro completa disponibile nella memoria o sul disco rigido. Dopo che il personaggio è stato convertito, il programma dovrebbe dimenticarlo e poi passare al successivo.
Questo può essere fatto penso solo passando i caratteri per la traduzione mentre vengono digitati nella console dall'utente.
Dove si trova la domanda? –