Execution d'un script PowerShell depuis une appli C#
Bonjour,
Je cherche à executer un script Powershell depuis mon application. Si je le fais en utilisant la classe PowerShell, en faisant un AddScript pour ajouter mon script puis un Invoke, tout se déroule correctement. Cependant cela ouvre une fenetre powershell en arrière plan.
J'ai donc trouvé sur internet une solution qui consiste à utiliser la classe ProcessStartInfo :
Code:
1 2 3 4 5 6 7 8 9
| ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "powershell.exe", // Utiliser PowerShell pour exécuter le script
Arguments = arguments, // Passer les arguments de la commande
CreateNoWindow = true, // Ne pas créer de fenêtre PowerShell
UseShellExecute = false, // Ne pas utiliser l'interface utilisateur du shell
RedirectStandardOutput = true, // Rediriger la sortie du script vers l'application
RedirectStandardError = true // Rediriger les erreurs aussi
}; |
Avec dans arguments mon script. Mais quand je fais ainsi, j'ai une erreur sur les lignes ou apparait la variable $env. Par exemple
Code:
FilePath = $env:SystemRoot\Temp\MAS_$rand.cmd;
L'erreur est la suivante : La référence à la variable n'est pas valide. $ n'est pas suivi d'un caractère de nom de variable valide. Envisagez d'utiliser ${} pour délimiter le nom.
Est-ce qu'il y a quelque chose de spécial à faire dans le cas ou on ne passe pas par la classe PowerShell ?
Merci d'avance pour votre aide.