228 votes

Comment exécuter un script PowerShell à partir d'un fichier de commandes

J'essaie d'exécuter ce script dans PowerShell. J'ai enregistré le script ci-dessous en tant que ps.ps1 sur mon bureau.

 $query = "SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2"
Register-WMIEvent -Query $query -Action { invoke-item "C:\Program Files\abc.exe"}
 

J'ai créé un script batch pour exécuter ce script power shell

 @echo off
Powershell.exe set-executionpolicy remotesigned -File  C:\Users\SE\Desktop\ps.ps1
pause
 

mais je reçois cette erreur.

entrez la description de l'image ici

314voto

Joey Points 148544

Vous avez besoin du paramètre -ExecutionPolicy :

 Powershell.exe -executionpolicy remotesigned -File  C:\Users\SE\Desktop\ps.ps1
 

Sinon, PowerShell considère que les arguments sont une ligne à exécuter et que Set-ExecutionPolicy est une cmdlet, elle ne possède pas de paramètre -File .

127voto

deadlydog Points 1840

J'explique à la fois pourquoi vous souhaitez appeler un script PowerShell à partir d'un fichier de commandes et la façon de faire de mon blog ici.

C'est essentiellement ce que vous cherchez:

PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\Users\SE\Desktop\ps.ps1'"

Et si vous avez besoin pour exécuter votre script PowerShell en tant qu'administrateur, utilisez ceci:

PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""C:\Users\SE\Desktop\ps.ps1""' -Verb RunAs}"

Plutôt que de coder en dur le chemin d'accès complet au script PowerShell cependant, je recommande de placer le fichier batch et le fichier de script PowerShell dans le même répertoire que mon blog a décrit.

18voto

Root Loop Points 86

si vous lancez un appel groupé ps en tant qu'administrateur, vous feriez mieux de le faire de cette manière, enregistrez tous les problèmes:

 powershell.exe -ExecutionPolicy Bypass -Command "Path\xxx.ps1"
 

il vaut mieux utiliser Bypass ........

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X