Je travaille sur un projet qui nécessite une application sandbox. Je suis capable de créer un utilisateur Windows, de créer un répertoire, de remplir le répertoire avec une application et d'exécuter l'application en tant qu'utilisateur. Cela fonctionne en marche tout à fait bien comme une application de la console, mais quand je l'installe en tant que service, je reçois cette exception:L'exécution du processus en tant qu'utilisateur à partir du service Windows échoue-t-elle lorsque Access est refusé?
System.ComponentModel.Win32Exception: Access is denied
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
Le code qui lance cette exception est:
_process = new Process
{
StartInfo =
{
Arguments = "",
CreateNoWindow = true,
ErrorDialog = false,
FileName = instanceDirectory + "program.exe",
WorkingDirectory = instanceDirectory,
UseShellExecute = false,
UserName = GetUserNameForInstance(_id),
Password = GetPasswordForInstance(_id),
Domain = ""
},
EnableRaisingEvents = true
};
_process.Exited += ProcessExited;
_process.Start();
Encore une fois, cela est seulement lancé lors de l'exécution en tant que service Windows. Le service fonctionne sous LOCAL SYSTEM selon le panneau Services de Windows.
Des idées?
Où est le fichier exécutable situé? – wj32
Je suis confronté exactement au même problème ici. Avez-vous été capable de trouver une solution? – kizzx2