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

  1. Utilisez le paramètre -File pour exécuter un script PowerShell depuis un fichier batch
  2. Utilisez RemoteSigned comme -ExecutionPolicy pour exécuter un script PowerShell depuis un fichier batch
  3. Utilisez l’option Bypass pour exécuter un script PowerShell depuis un fichier batch
  4. Exécutez un script PowerShell depuis un fichier batch en ouvrant PowerShell en tant qu’administrateur
  5. Conclusion
Comment exécuter un script PowerShell à partir d'un fichier batch

Un script PowerShell est un fichier texte utilisant l’extension .ps1 contenant une collection de commandes. PowerShell exécute ces commandes en séquence.

Un fichier batch est un fichier texte utilisant l’extension .bat. Il contient également une collection de commandes qui sont exécutées en séquence.

Les commandes peuvent être exécutées en ouvrant le fichier .bat. Ce tutoriel vous apprendra à exécuter un script PowerShell depuis un fichier batch.

Nous avons créé un script PowerShell, myscript.ps1, contenant la commande suivante. La commande pause arrête l’exécution d’un fichier batch jusqu’à ce que vous appuyiez sur la touche Entrée.

Write-Host "Your script is executed successfully."
Pause

Utilisez le paramètre -File pour exécuter un script PowerShell depuis un fichier batch

Exécuter un script PowerShell depuis un fichier batch peut être une technique utile pour automatiser des tâches dans des environnements Windows. La méthode du paramètre -File permet une intégration harmonieuse des scripts PowerShell dans les flux de travail des fichiers batch.

La commande suivante est utilisée dans le fichier bat pour exécuter un script PowerShell.

@echo off
powershell -File script.ps1

Dans cet extrait de code, nous utilisons d’abord @echo off pour supprimer l’affichage des commandes exécutées, garantissant que seule la sortie du script sera visible par l’utilisateur. Ensuite, nous utilisons la commande powershell avec le paramètre -File pour exécuter un script PowerShell nommé script.ps1.

Cette commande lance une session PowerShell et spécifie le fichier de script à exécuter. En combinant ces commandes, nous pouvons exécuter sans problème un script PowerShell depuis un fichier batch, simplifiant le processus d’exécution des commandes PowerShell dans un environnement de fichier batch.

Sortie :

exécuter un script powershell à partir d’un fichier batch - sortie 1

Utilisez RemoteSigned comme -ExecutionPolicy pour exécuter un script PowerShell depuis un fichier batch

PowerShell a différentes politiques d’exécution qui déterminent quels scripts peuvent être exécutés et d’où. Une façon de contourner ces restrictions est de spécifier le paramètre -ExecutionPolicy avec la valeur RemoteSigned.

Cette politique d’exécution permet aux scripts créés localement de s’exécuter sans nécessiter de signature numérique, tandis que les scripts téléchargés depuis Internet doivent être signés par un éditeur de confiance.

@echo off
powershell -ExecutionPolicy RemoteSigned -File script.ps1

Dans l’extrait de code fourni, powershell -ExecutionPolicy RemoteSigned -File script.ps1 est utilisé pour exécuter le script PowerShell nommé script.ps1 situé dans le répertoire de travail actuel. En spécifiant le paramètre -ExecutionPolicy comme RemoteSigned, nous garantissons que les scripts créés localement peuvent être exécutés sans signature numérique, tandis que les scripts téléchargés depuis Internet doivent être signés par un éditeur de confiance.

Sortie :

exécuter un script powershell à partir d’un fichier batch - sortie 2

Utilisez l’option Bypass pour exécuter un script PowerShell depuis un fichier batch

Pour contourner les restrictions et permettre au script de s’exécuter sans aucune limitation imposée par la politique d’exécution, nous pouvons utiliser le paramètre -ExecutionPolicy avec la valeur Bypass. Cette méthode fournit un moyen simple d’exécuter des scripts PowerShell depuis un fichier batch tout en contournant les restrictions de la politique d’exécution.

@echo off
powershell -ExecutionPolicy Bypass -File C:\path\script.ps1

Dans l’extrait de code fourni, powershell -ExecutionPolicy Bypass -File C:\path\script.ps1 est utilisé pour exécuter le script PowerShell nommé script.ps1 situé dans le répertoire C:\path\scripts. En définissant la politique d’exécution sur Bypass, nous instruisons PowerShell d’ignorer toutes les restrictions de politique d’exécution, permettant ainsi au script de s’exécuter sans aucune entrave.

Sortie :

exécuter un script PowerShell à partir d’un fichier batch - sortie 3

Vous pouvez également exécuter la commande suivante.

@echo off
powershell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\path\script.ps1'"

Dans cette commande fournie, nous utilisons -ExecutionPolicy Bypass pour instruire PowerShell d’ignorer toutes les restrictions de politique d’exécution, permettant ainsi au script de s’exécuter sans limitations. De plus, le paramètre -NoProfile garantit que le profil PowerShell de l’utilisateur n’est pas chargé, ce qui contribue à maintenir un environnement d’exécution propre pour le script.

Sortie :

exécuter un script powershell à partir d’un fichier batch - sortie 4

Exécutez un script PowerShell depuis un fichier batch en ouvrant PowerShell en tant qu’administrateur

Exécuter un script PowerShell depuis un fichier batch avec des privilèges élevés en ouvrant PowerShell en tant qu’administrateur est une méthode cruciale pour exécuter des scripts nécessitant un accès administratif. Cette approche garantit que la session PowerShell dispose des autorisations nécessaires pour effectuer des tâches administratives, telles que la modification des paramètres système ou l’accès à des ressources restreintes.

@echo off
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Start-Process powershell.exe -Verb RunAs -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1'"

Dans cet extrait de code, nous utilisons powershell.exe pour démarrer une session PowerShell avec des privilèges élevés. Le paramètre -Verb RunAs dans le cmdlet Start-Process garantit que PowerShell est ouvert avec des privilèges administratifs.

En passant les arguments nécessaires (-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1) à la nouvelle session PowerShell, nous permettons l’exécution du script spécifié (script.ps1) avec des privilèges élevés.

Sortie :

exécuter un script PowerShell à partir d’un fichier batch - sortie 5

Conclusion

Dans cet article, nous avons exploré diverses méthodes pour exécuter un script PowerShell depuis un fichier batch. Nous avons appris à utiliser le paramètre -File pour exécuter un script directement, ainsi que comment contourner les restrictions de politique d’exécution utilisant les paramètres RemoteSigned et Bypass.

De plus, nous avons discuté de la façon d’ouvrir PowerShell en tant qu’administrateur pour exécuter des scripts avec des privilèges élevés. Chaque méthode offre une approche unique pour exécuter des scripts PowerShell depuis des fichiers batch, offrant flexibilité et contrôle sur l’environnement d’exécution.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Article connexe - PowerShell Script