Bonjour à tous,
Voilà je me retrouve face à un problème assez étrange.
J'ai créé un service Windows qui doit lancer un process sous un utilisateur spécifique.
Problème, ça bloque sur le process.start().
Lorsque j'execute le code dans une Windows form alors pas de problème le process est lancé sous le nom de l'utilisateur spécifié.
Voici mon code
Alors la question que je me pose, c'est : Est-il possible de lancer un process à partir d'un service en spécifiant le nom d'utilisateur à utiliser ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 private void ExecutFile(string FileName, string Parameters, string PathName, bool bNeedWait) { Process p = new Process(); AddToFile(FileName); p.StartInfo.FileName = FileName; p.StartInfo.WorkingDirectory = PathName; p.StartInfo.UserName = "uid"; p.StartInfo.LoadUserProfile = true; System.Security.SecureString ss = new System.Security.SecureString(); string s = "pwd"; foreach (char c in s) { ss.AppendChar(c); } p.StartInfo.Password = ss; p.StartInfo.Domain = "dmn"; p.StartInfo.RedirectStandardError = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardInput = true; p.StartInfo.CreateNoWindow = true; p.StartInfo.UseShellExecute = false; p.Start(); if (bNeedWait == true) { p.WaitForExit(); } }
Merci, pour votre aide,
Cordialement,
Stéphane
Partager