2011-05-10 40 views
7

Sto tentando di eseguire un processo dal servizio come un altro utente.Accesso negato durante l'esecuzione di Process.Start da Windows Service

Process.Start(applicationPath, params, account, SecureStringPassword, ""); 

Un servizio è in esecuzione con l'account "Sistema locale".

Il parametro account è una stringa come "WORKSTATION6 \ Tester". Questo utente è un membro del gruppo Administrators.

"Percorso applicazione" fa riferimento a Programmi, quindi ogni utente può leggerlo.

Ma ho un'eccezione "Accesso negato" ogni volta che provo ad avviare il processo. Cosa puoi consigliare?

+0

Hai provato a guardare in [Process Monitor] (http: // TechNet. microsoft.com/en-us/sysinternals/bb896645)? Questo potrebbe mostrarti esattamente ciò a cui non può accedere. Ma sembra che il passaggio da un utente all'altro potrebbe essere il problema. – Rup

+0

Ho provato ProcMon, ma non mostra nulla di utile per me. Non ci sono errori nel registro. E il problema di commutazione utente? –

risposta

0

C'è un esempio di come utilizzare Process.Start sulla pagina SecureString. http://msdn.microsoft.com/en-us/library/system.security.securestring(v=VS.90).aspx#Y682

Penso che quello che dovete fare è mettere il dominio del tuo account utente nel ultimo parametro in questo modo:

Process.Start(applicationPath, params, "Tester", SecureStringPassword, "WORKSTATION6"); 
+0

Non aiuta. Ho ancora l'errore "Accesso negato" –

+0

Ho lo stesso problema ... ho già provato a chiamare un file .bat, utilizzare WMI, rappresentazione, ma nessun successo. Qualche aggiornamento @ E-Max? – Fernando

+7

Perché questa è la risposta accettata se non funziona? – Edgar