Je ne sais pas si vous avez oublié la - dans votre question mais c'est -ExecutionPolicy
. Si ce script n'est pas signé, il ne l'exécutera pas non plus, vous pouvez l'utiliser bypass
comme politique d'exécution pour l'exclure.
Je doute que vous puissiez exécuter les scripts et les commandes les uns après les autres dans la ligne de commande. Ajoutez le exit $LASTEXITCODE
au script et exécutez-le avec le -File C:\script.ps1
.
Si, par exécution, vous ne voulez pas dire que la fenêtre de la console est cachée , j’appelle généralement mes scripts comme
powershell.exe -noprofile -executionpolicy bypass -file C:\script.ps1
et ne jamais voir une fenêtre.
Pour obtenir la sortie de votre script dans un fichier, dirigez vos commandes vers Tee-Object
"Hello World" | Tee-Object C:\output.file
Vous pouvez nommer le fichier comme bon vous semble, implémenter une logique dans votre script pour que le nom de fichier s'incrémente ou - mon préféré - utiliser YYYYMMddhhmmss dans le nom du fichier.
Mettre à jour
En outre, extrait de la page Technet de Microsoft sur Powershell:
Les blocs de script doivent être placés entre accolades ({}). Vous pouvez spécifier un bloc de script uniquement lors de l'exécution de PowerShell.exe dans Windows PowerShell . Les résultats du script sont renvoyés au shell parent sous forme d'objets XML désérialisés, et non d'objets réels.
Si la valeur de Command est une chaîne, Command doit être le dernier paramètre de la commande, car tous les caractères tapés après la commande sont interprétés comme les arguments de la commande .