Process.Start () non deposizione nuovo processo con lo stesso utente
-
30-09-2019 - |
Domanda
io ero sempre l'impressione che quando si sta eseguendo un processo come (domain\user) mydomain\myuser
, quando si utilizza Process.Start()
sarebbe iniziare questo nuovo processo utilizzando le stesse credenziali -. mydomain\myuser
Il problema che sto avendo è che la mia chiamata Process.Start()
sembra essere la creazione di un processo con l'account SYSTEM, che sta causando problemi mi autorizzazione del processo avviato (che deve essere eseguito con un account amministratore a causa del lavoro che fa). Se si cambia le cose - sto deposizione delle uova di questo processo (un exe su misura) da all'interno di una finestra di installazione
Qualche suggerimento? Ho letto su criteri di gruppo di Windows (possibilmente) che hanno un impatto su questo, ma se sono onesti, è perso su di me.
EDIT: un piccolo frammento:
Dove exename
e commandLine
sono parametri per questo metodo di corpo:
ProcessStartInfo procInfo = new ProcessStartInfo(exeName, commandLine);
procInfo.WorkingDirectory = workingDirectory;
procInfo.UseShellExecute = false;
procInfo.CreateNoWindow = true;
Process process = Process.Start(procInfo);
Process.WaitForExit();
return process.ExitCode;
Soluzione
In entrambi i set procInfo.UseShellExecute true, o eseguire cmd come un processo con il vostro exe come parametro per il comando cmd. Quando UseShellExecute è impostato su false, qui ci sono un sacco di effetti collaterali interessanti: UseShellExecute
Altri suggerimenti
La tua impressione è vero. Process.Start () sarà sempre avviare il nuovo processo con le credenziali dell'utente corrente -. A meno che non si forniscono le credenziali alternative nel ProcessStartInfo
o l'uso uno dei sovraccarichi che prendono le credenziali
Ci deve essere un altro problema -. Condividere un frammento del codice
Aggiorna
OK! Lei non ha menzionato nulla di installazione. Tutti gli installatori MSI sarà in esecuzione con il sistema dal momento che verranno gestiti da " Windows Installer ", che è possibile controllare e hanno eseguito con SYSTEM .