Bonjour,
Je développe actuellement une application en C# afin d'avoir une interface pour ensuite déclencher des scripts PowerShell.
Je dois utiliser des comptes dédiés afin de lancer ces scripts et j'utilise donc la classe Process et ProcessStartInfo afin de gérer tout ça :
Par ailleurs, j'ai essayé précédemment avec le code suivant:
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 string pwd = this.accountPWD; ProcessStartInfo initialiseLogs = new ProcessStartInfo(); Process proc = new Process(); proc.StartInfo.FileName = "Powershell.exe";//choix de Powershell pour l'exécution proc.StartInfo.UserName = this.accountID; SecureString pwdstr = new SecureString(); for (int i = 0; i < pwd.Length; i++) { pwdstr.AppendChar(pwd[i]); } proc.StartInfo.Password = pwdstr; proc.StartInfo.Verb = "runas"; proc.StartInfo.UseShellExecute = false; string arginitial = this.argument; proc.StartInfo.Arguments = ".\\ScriptPowerShell.ps1" + " " + arginitial; proc.Start(); proc.WaitForExit(); proc.Close();
Le message d'erreur qui m'est retourné est le suivant :
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 string pwd = this.accountPWD; ProcessStartInfo initialiseLogs = new ProcessStartInfo(); initialiseLogs.FileName = "Powershell.exe";//choix de Powershell pour l'exécution initialiseLogs.UserName = this.accountID; SecureString pwdstr = new SecureString(); for (int i = 0; i < pwd.Length; i++) { pwdstr.AppendChar(pwd[i]); } initialiseLogs.Password = pwdstr; initialiseLogs.Verb = "runas"; initialiseLogs.UseShellExecute = false; string arginitial = this.hostname; initialiseLogs.Arguments = ".\\InitialiseLogs.ps1" + " " + arginitial; Process proc = new Process(); proc = System.Diagnostics.Process.Start(initialiseLogs); InitialiseLogFile.Start(); InitialiseLogFile.WaitForExit(); InitialiseLogFile.Close();
"Erreur de Process !" est une notation dans mon code.
Je ne sais pas comment résoudre ce problème qui m'empêche d'avancer. Je tiens à préciser les points suivants tout de même:
- Lorsque j'exécute mes scripts PowerShell à la main en ligne de commande ils fonctionnent très bien
- J'ai essayé de modifier la propriété du manifeste d'application afin de la lancer en tant qu'administrateur mais le résultat est le même
- J'ai créé comme trouvé sur le net une clé dans mon registre mais cela n'a eu aucun effet
- Lorsque je lance les scripts depuis mon application C# sans les comptes en utilisant le shell par défaut et en mode admin donc toujours avec la ligne "runas" tout fonctionne très bien
L'erreur a lieu au niveau de la gestion du compte de service utilisé mais après de nombreux tests et recherches sur le net, je me retrouve bloqué dans cette situation.
Je vous remercie d'avance pour toute aide ou remarque qui me permettrait d'avancer.
Partager