Domanda

Devo iniziare un programma a riga di comando con System.Diagnostics.Process.Start () ed eseguirlo come amministratore.

Questa azione sarà gestito da un'operazione pianificata ogni giorno.

È stato utile?

Soluzione 5

L'ho trovato, ho bisogno di impostare l'operazione pianificata per eseguire l'applicazione con privilegi più elevati in Impostazioni generali.

Altri suggerimenti

Ho appena cerco di utilizzare:

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 credo.

Una soluzione migliore e sicuro 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);

Si deve consentire codice unsafe nelle proprietà del progetto.

Spero che questo aiuto.

Se si utilizza operazioni pianificate, si può impostare l'utente e password per l'esecuzione dell'attività sotto.

utilizzare le credenziali di amministratore sul compito e vi 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();

Essere consapevoli del fatto che la memorizzazione di una password in chiaro in un programma non è mai sicuro fino a quando qualcuno può esaminare l'applicazione e vedere che cosa è in esso. Utilizzando SecureString per convertire una password memorizzata in una password SecureString non lo rende più sicuro, perché la password in chiaro sarebbe ancora 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 completa disponibile la password in chiaro nella memoria o sul disco rigido. Dopo di che personaggio è convertito, il programma dovrebbe dimenticare, e poi passare alla successiva.

Ciò potrebbe essere fatto penso solo passando attraverso i personaggi per la traduzione mentre vengono digitati nella console da parte dell'utente.

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