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
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();
            }
        }
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 ?

Merci, pour votre aide,
Cordialement,
Stéphane