
Ce tutoriel explique comment intégrer directement un script PowerShell dans un fichier batch afin de n'avoir qu'un seul fichier à publier.
Pour exécuter un script PowerShell (.ps1) à partir d'un fichier batch (.bat), vous pouvez intégrer directement le contenu du script PowerShell dans le fichier batch. Cela permet de simplifier la distribution de votre script en ayant tout dans un seul fichier.
Voici comment vous pouvez créer un fichier .bat qui lance un script PowerShell intégré :
- Étape 1 : Créer un fichier batch
Créez un nouveau fichier avec l'extension .bat, par exemple MonScript.bat.
- Étape 2 : Intégrer le contenu du script PowerShell
Utilisez la commande powershell -Command dans le fichier batch pour exécuter du code PowerShell intégré.
Voici un exemple de base :Code : Tout sélectionner
@echo off REM Lancer le script PowerShell intégré powershell -NoProfile -ExecutionPolicy Bypass -Command ^ "$ErrorActionPreference = 'Stop';" ^ "Write-Host 'Bonjour depuis PowerShell';" ^ "Start-Sleep -Seconds 2;" ^ "Write-Host 'Script PowerShell terminé.'" REM Fin du fichier batch pause
- Explication des options de la commande :
- -NoProfile :
Empêche PowerShell de charger le profil de l'utilisateur, ce qui peut améliorer les performances et éviter les interférences.
- -ExecutionPolicy Bypass :
Permet de contourner la stratégie d'exécution, assurant que le script s'exécute même si les politiques de sécurité de l'utilisateur sont restrictives.
- -Command :
Spécifie le code PowerShell à exécuter. Ce code est écrit entre guillemets.
- -NoProfile :
- Explication des options de la commande :
- Étape 3 : Ajouter le contenu du script PowerShell
Remplacez le contenu PowerShell par le vôtre en continuant chaque ligne avec un ^ à la fin pour indiquer que la commande continue sur la ligne suivante.
Voici un exemple où le contenu est un peu plus complexe :
Code : Tout sélectionner
@echo off REM Lancer le script PowerShell intégré powershell -NoProfile -ExecutionPolicy Bypass -Command ^ "$ErrorActionPreference = 'Stop';" ^ "param([string]$nom = 'Utilisateur');" ^ "Write-Host ('Bonjour, ' + $nom);" ^ "Start-Sleep -Seconds 2;" ^ "Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 | Format-Table -AutoSize;" REM Fin du fichier batch pause
- Étape 4 : Enregistrer et exécuter
- Enregistrez votre fichier avec l'extension .bat (par exemple, MonScript.bat).
- Double-cliquez sur le fichier .bat pour l'exécuter. Cela exécutera le code PowerShell intégré.
Assurez-vous d'avoir les droits d'exécution pour PowerShell et que l'exécution de scripts n'est pas bloquée par la politique de sécurité du système.
Avec cette méthode, vous pouvez exécuter n'importe quel code PowerShell depuis un fichier batch sans avoir besoin d'un fichier .ps1 séparé.