Comment écrire et exécuter un fichier de script PowerShell sur Windows 11

PowerShell est un outil en ligne de commande développé par Microsoft pour automatiser les tâches administratives courantes. Un script est une collection de commandes PowerShell, stockée dans un fichier texte avec une extension de fichier *.ps1. Lors de l’exécution d’un script PowerShell, l’interprète lit le fichier et exécute les commandes de manière séquentielle.

Vous pouvez créer un script PowerShell en utilisant n’importe quel éditeur de texte (même NotePad). Mais de préférence, il est recommandé d’utiliser un éditeur de scripts PowerShell. L’éditeur par défaut inclus dans Windows est l’Environnement de Script Intégré PowerShell (PowerShell ISE). Il comprend des fonctions utiles telles que la coloration, l’achèvement du code, la vérification de la syntaxe, le débogage, l’enregistrement automatique, la protection contre les plantages, etc.

Publicité

Microsoft propose un éditeur de code gratuit et multiplateforme appelé Visual Studio Code (VS Code), disponible pour Windows, Linux et macOS. Il prend en charge divers langages de programmation grâce aux extensions que vous pouvez installer, y compris PowerShell.

Un avantage de Visual Studio Code est qu’il prend en charge les versions les plus récentes de PowerShell, tandis que PowerShell ISE ne prend en charge que jusqu’à la version 5.1 de PowerShell.

Comment exécuter un script PowerShell (guide rapide)

Voici une rapide explication sur la manière d’exécuter un script PowerShell. La méthode suivante fonctionne pour les scripts PowerShell qui ne nécessitent pas de paramètres obligatoires et n’affichent pas de sortie dans l’invite de commandes.

  1. Cliquez avec le bouton droit sur le script PowerShell dans l’Explorateur de fichiers.
  2. Sélectionnez Exécuter avec PowerShell dans le menu contextuel.
  3. Le script s’exécutera avec une stratégie d’exécution de ByPass. La stratégie d’exécution pour l’ordinateur ou l’utilisateur n’est pas modifiée.

Pour plus de détails sur l’écriture et l’exécution des scripts PowerShell, continuez à lire !

Publicité

Comment créer des scripts PowerShell

Il existe plusieurs façons de créer des scripts PowerShell :

  • Avec l’éditeur de code multiplateforme Visual Studio Code
  • Avec PowerShell ISE
  • Ou tout autre éditeur de texte, comme NotePad

Création de scripts PowerShell avec Visual Studio Code

Visual Studio Code n’est pas disponible par défaut sur Windows, il doit donc être téléchargé depuis le site dédié Visual Studio. Dans notre cas, nous devons télécharger la distribution Windows, disponible pour les systèmes 64 bits, 32 bits et ARM.

Voici les différentes étapes que vous devez suivre après avoir installé l’application. Tout d’abord, vous devrez ouvrir Visual Studio Code depuis le menu Démarrer.

Opening Visual Studio Code from the Windows 11 Start Menu

Installer l’extension PowerShell

Ouvrez le menu des extensions en cliquant sur l’icône des extensions comme indiqué dans l’image ci-dessous, ou utilisez le raccourci clavier Ctrl + Maj + X.

Publicité

Open the extensions menu from the left sidebar

Tapez powershell dans la zone de recherche, sélectionnez l’option la plus téléchargée comme indiqué ci-dessous, en vous assurant de télécharger l’extension fournie par Microsoft. Ensuite, cliquez sur Installer.

Find the PowerShell extension

Lorsque l’installation est terminée, vous ne verrez aucune confirmation. Cependant, vous verrez que le bouton Installer a été remplacé par les options Désactiver et Désinstaller.

Disable and Uninstall options appear after installing the extension

Comment créer un script PowerShell avec Visual Studio Code

Pour créer un nouveau script PowerShell, allez dans Fichier > Nouveau fichier, ou utilisez le raccourci clavier Ctrl + N.

Creating a new PowerShell script

Pour spécifier que le nouveau fichier est un script PowerShell, cliquez sur Texte brut en bas à gauche ou sur Sélectionner une langue dans le volet de script. Chacune de ces options vous dirigera vers la boîte de Sélectionner un mode de langage. Tapez powershell puis sélectionnez PowerShell.

Specify that the new file is a PowerShell script

Cela déclenchera l’extension PowerShell, et vous remarquerez un changement de comportement et de fonctionnalités. Tout d’abord, vous verrez que l’icône à côté du nom du fichier changera pour PowerShell. De plus, vous verrez que la console PowerShell se lancera, c’est là que vous pourrez exécuter des commandes et des scripts PowerShell.

Starting the PowerShell Console

Le même résultat peut être obtenu en enregistrant le fichier avec l’extension *.ps1.

Tapez les commandes suivantes dans le volet de script et vous apprécierez des avantages tels que la coloration syntaxique, l’auto-complétion des commandes et les indications de syntaxe en action :

Write-Host "This is a Visual Studio Code script"
Write-Host "Writing PowerShell Scripts is fun!"
How to type commands in the script pane

Remarque : La troisième ligne est uniquement à des fins de démonstration, pour montrer l’option de complétion de commande.

Pour enregistrer le fichier, vous pouvez utiliser le menu Fichier : Fichier > Enregistrer. Vous pouvez également utiliser le raccourci clavier Ctrl + S.

Ensuite, choisissez un emplacement facilement accessible, fournissez le nom du fichier, assurez-vous de spécifier *.ps1 comme extension de fichier, et cliquez sur Enregistrer. Dans cet exemple, je stocke le fichier dans C:\TEMP\MyVSCodeScript.ps1.

Save your file as a .ps1

L’exécution des scripts dans VS Code sera abordée plus tard dans l’article.

Création de scripts avec l’Environnement de script intégré Windows PowerShell

Pour lancer l’éditeur PowerShell ISE, cliquez sur le bouton Démarrer (ou Rechercher) et commencez à taper PowerShell ISE. Vous verrez l’application dans les résultats de recherche avec différentes options d’ouverture. Il est toujours conseillé d’utiliser Exécuter en tant qu’administrateur pour s’assurer que toutes les commandes seront exécutées correctement et ne seront pas bloquées.

You need to run the PowerShell ISE as an administrator

Alors, créons un script dans l’éditeur PowerShell ISE. Écrivez les lignes suivantes, et encore une fois, vous pouvez remarquer des fonctionnalités pratiques comme le codage des couleurs, la complétion automatique des commandes, les indications de syntaxe, etc.:

Write-Host "This is a PowerShell ISE script"
Write-Host "Writing PowerShell Scripts is fun!"

 

Creating a script in the PowerShell ISE

Remarque : La troisième ligne sert uniquement à des fins de démonstration, pour montrer l’option de complétion de commande.

Ensuite, sauvons la liste de commandes en tant que script PowerShell. Pour ce faire, vous devez cliquer sur l’icône du disque souple dans la barre d’outils, puis cliquer sur Fichier > Enregistrer dans le menu Fichier. Vous pouvez également utiliser la combinaison de touches Ctrl + S.

Dans la boîte de dialogue Enregistrer sous, choisissez un dossier, donnez un nom de fichier, spécifiez l’extension *.ps1, et cliquez sur Enregistrer. Dans cet exemple, je fournis le nom suivant : C:\TEMP\MyPowerShellISEScript.ps1.

Saving your PowerShell script

Créer des scripts avec NotePad

Il n’est pas recommandé d’utiliser un éditeur de texte basique pour écrire des scripts PowerShell, mais c’est une possibilité. Prenons un exemple avec NotePad

  • Ouvrez NotePad et tapez les commandes suivantes:
Write-Host "This is a Notepad script"
Write-Host "Writing PowerShell Scripts is fun!
You can write PowerShell scripts in NotePad
  • Pour enregistrer le script, sélectionnez Fichier > Enregistrer.
  • Dans la boîte de dialogue Enregistrer sous, choisissez un dossier et donnez un nom de fichier avec l’extension *.ps1. Dans cet exemple, j’utilise : C:\TEMP\MyNotepadScript.ps1.

Comment exécuter des scripts PowerShell

A PowerShell script (*.ps1 file) can be run in the PowerShell console, which recognizes the *.ps1 file type and runs the commands sequentially. You may open the script as a file in code editors like the PowerShell ISE and Visual Studio Code, and run the whole script in the console pane or run only a part of it.

Comment activer les scripts PowerShell en modifiant la stratégie d’exécution

Les stratégies d’exécution de PowerShell sont un dispositif de sécurité qui contrôle les conditions dans lesquelles PowerShell charge les fichiers de configuration et exécute les scripts. Il est important de souligner que ce n’est pas un système de sécurité car les stratégies d’exécution peuvent être facilement contournées. Cependant, elles aident à protéger les utilisateurs contre l’exécution accidentelle de scripts.

La stratégie d’exécution par défaut pour Windows 11 est Restricted. Sur les systèmes non Windows, la stratégie d’exécution par défaut est Unrestricted et elle ne peut pas être modifiée.

Pour afficher la stratégie d’exécution actuelle, utilisez la commande PowerShell Get-ExecutionPolicy.

Vous pouvez modifier la stratégie d’exécution sur Windows en utilisant le Set-ExecutionPolicy cmdlet:

 Set-ExecutionPolicy -ExecutionPolicy <PolicyName>

Les différentes stratégies d’exécution seront abordées dans le sujet suivant.

Changement de la stratégie d’exécution de PowerShell

Sur Windows, vous pouvez définir la stratégie d’exécution pour la machine locale, l’utilisateur actuel ou le processus PowerShell.

Pour lister tous les scopes disponibles, utilisez Get-ExecutionPolicy -List.

Get-ExecutionPolicy -List

L’ordre est important, donc l’élément le mieux configuré prend le dessus. Par exemple, si vous avez défini une stratégie d’exécution à l’aide d’une stratégie de groupe, elle prendra le dessus sur les autres.

The highest configured item takes precedence
Policy Description
Restricted The default execution policy for Windows client OSes. It does not allow ANY scripts (*.ps1 files) to be executed. Still, you may run individual commands.
RemoteSigned The default execution policy for Windows Server. It Allows running scripts that are created locally. Scripts downloaded from untrusted locations, like the Internet, e-mail, messengers, etc. must be digitally signed by a trusted publisher. You may use the command Unblock-File to allow a script to run on the system.  
Unrestricted The default execution policy for non-Windows computers, and it cannot be changed. It allows unsigned scripts to run, but it shows a warning message and asks for confirmation if scripts are coming from an untrusted location.
AllSigned It requires all scripts running on the machine to be digitally signed by a trusted publisher, no matter if they are created locally on the machine or downloaded from the Internet.
Bypass It allows all scripts to run, like Unrestricted, but no confirmation is required.
Undefined There is no execution policy set on the specified scope. If all scopes are set as undefined, then the default execution policies are applied.
The different PowerShell execution policies

Pour permettre à PowerShell d’exécuter des scripts, vous devez utiliser la commande Set-ExecutionPolicy -ExecutionPolicy <PolicyName>.

Set-ExecutionPolicy -ExecutionPolicy <PolicyName>

Par défaut, cette commande applique votre politique choisie au ordinateur local scope. Si vous souhaitez spécifier un autre scope, vous devez utiliser le paramètre -Scope et fournir le nom du scope.

Par exemple, la commande suivante définit la stratégie d’exécution sur Non restreint pour l’utilisateur actuel:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

Exécuter un script avec PowerShell

Pour ouvrir la console PowerShell, cliquez sur le bouton Démarrer (ou bouton de recherche), tapez powershell, et cliquez sur Exécuter en tant qu’administrateur.

Run the PowerShell console as an administrator

Pour exécuter un script dans la console PowerShell, vous pouvez soit:

  • Utilisez le chemin complet vers le script, comme : C:\TEMP\MyNotepadScript.ps1
  • Ou utilisez simplement le nom du script, à partir du dossier où se trouve le fichier : .\MyNotepadScript.ps1

Exécuter un script PowerShell dans Visual Studio Code

Pour exécuter un script dans Visual Studio Code, vous devez d’abord démarrer l’application et ouvrir le fichier de script créé précédemment (C:\TEMP\MyVSCodeScript.ps1).

  • Sélectionnez Fichier > Ouvrir Fichier ou utilisez la combinaison de touches Ctrl + O.
  • Avec le script chargé dans VS Code, vous pouvez l’exécuter en cliquant sur le bouton Exécuter dans le coin supérieur droit, ou en appuyant sur F5 sur votre clavier.

Le script sera exécuté dans la fenêtre de console, où vous verrez la sortie du script.

The script is being executed in the console pane

Une autre option serait d’exécuter uniquement une partie du script (Exécuter la sélection). C’est souvent utile lorsque vous créez votre script et que vous souhaitez confirmer que certaines parties se comportent comme prévu.

  • Pour exécuter une sélection du script, sélectionnez la partie que vous souhaitez exécuter.
  • Cliquez sur Exécuter la sélection dans le coin supérieur droit de la console, ou appuyez sur F8 sur votre clavier.

Cette fois, VS Code n’exécute que les lignes de code sélectionnées dans la fenêtre de console.

How to run only a part of a script

Exécution d’un script dans l’ISE PowerShell

L’exécution de scripts dans l’ISE PowerShell est assez similaire.

  • Lancez l’ISE PowerShell.
  • Ouvrez le script de la démonstration précédente (dans ce cas – C:\TEMP\MyPowerShellISEScript.ps1) en utilisant Fichier > Ouvrir, ou l’icône Ouvrir de la barre d’outils, ou la combinaison de touches Ctrl + O.
  • Sélectionnez le fichier du script et cliquez sur Ouvrir.

Pour exécuter l’ensemble du script, utilisez le bouton Exécuter sur la barre d’outils ou appuyez sur F5 sur votre clavier. Cela exécutera le fichier de script dans la fenêtre de console, renvoyant le résultat.

Running a script in the PowerShell ISE

Si vous avez besoin d’exécuter uniquement une partie du script, sélectionnez la section et choisissez Exécuter la sélection dans la barre d’outils, ou appuyez sur F8 sur votre clavier. Encore une fois, PowerShell ISE n’exécutera que les lignes de code sélectionnées.

You can also execute only part of the script

Exécution d’un script PowerShell à partir de l’invite de commande

Si les fichiers *.ps1 sont interprétés par PowerShell, l’invite de commande (CMD) ne peut pas travailler directement avec les scripts PowerShell. Si vous souhaitez exécuter un script PowerShell dans CMD, vous devrez l’exécuter en appelant le processus PowerShell avec le paramètre -File, comme indiqué ci-dessous:

PowerShell -File C:\TEMP\MyNotepadScript.ps1.

Conclusion

Les scripts PowerShell sont une excellente façon d’automatiser les tâches répétitives. Suivez la règle générale : « Si vous devez faire quelque chose plus d’une fois, scriptez-le », et vous ne pouvez pas vous tromper!

Article connexe :

Source:
https://petri.com/how-to-write-and-run-a-powershell-script-file-on-windows-11/