J'ai toujours eu l'impression que lorsque vous exécutez un processus comme (domain\user) mydomain\myuser
, lors de l'utilisation de Process.Start()
, il démarrait ce nouveau processus en utilisant les mêmes informations d'identification - mydomain\myuser
. Le problème que je rencontre est que mon appel Process.Start()
semble créer un processus sous le compte SYSTÈME qui me cause des problèmes d'autorisation dans le processus démarré (qui doit s'exécuter sous un compte d'administrateur en raison du travail qu'il fait) . Si cela change les choses - je suis engendrant ce processus (un exe construit sur mesure) de dans un installateur de Windows.Process.Start() ne génère pas le nouveau processus sous le même utilisateur
Des suggestions? J'ai lu sur les politiques de groupe Windows (éventuellement) avoir un impact sur cela, mais si je suis honnête, il est perdu pour moi.
EDIT: un petit extrait:
Où exename
et commandLine
sont des paramètres pour ce corps de la méthode:
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;
Etes-vous sûr que le code d'origine ne fonctionne pas en tant que 'System'? – CodesInChaos
Oui, 100% sûr. J'ai vérifié ceci de deux manières - l'une utilisant l'exe d'installation que nous avons généré (et en m'assurant que l'utilisateur fonctionne sous moi via le gestionnaire de tâches). Également en exécutant le MSI, nous avons généré, en utilisant msiexec à partir de l'invite de commande et en le forçant à s'exécuter avec des droits d'administration sous mon nom d'utilisateur. Une fois que le fichier process.start() exe est démarré, il montre qu'il est exécuté par 'SYSTEM' dans les deux cas. – Dave