Utilisation de Visual Studio Code pour le développement PowerShell

Visual Studio Code (VS Code) est un éditeur de scripts multiplateforme de Microsoft. Avec l’extension PowerShell, il fournit une expérience d’édition de script riche et interactive, ce qui facilite l’écriture de scripts PowerShell fiables. Visual Studio Code avec l’extension PowerShell est l’éditeur recommandé pour l’écriture de scripts PowerShell.

Il prend en charge les versions suivantes de PowerShell :

  • PowerShell 7.2 et ultérieur (Windows, macOS et Linux)
  • Windows PowerShell 5.1 (Windows uniquement) avec .NET Framework 4.8

Notes

Visual Studio Code est différent de Visual Studio.

Prise en main

Avant de commencer, vérifiez que PowerShell est présent sur votre système. Pour les charges de travail modernes sur Windows, macOS et Linux, voir les liens suivants :

Pour les charges de travail Windows PowerShell classiques, consultez Installation de Windows PowerShell.

Important

L’environnement ISE Windows PowerShell est toujours disponible pour Windows. Toutefois, ses fonctionnalités ne sont plus développées activement. L’environnement ISE fonctionne uniquement avec PowerShell 5.1 et versions antérieures. En tant que composant de Windows, il continue d’être officiellement pris en charge pour la sécurité et les correctifs de maintenance de haute priorité. Nous n’avons pas l’intention de supprimer l’ISE de Windows.

Installer VS Code et l’extension PowerShell

  1. Installer Visual Studio Code. Pour plus d’informations, voir la vue d’ensemble Configurer Visual Studio Code.

    Les instructions d’installation sont propres à chaque plateforme :

  2. Installez l’extension PowerShell.

    1. Lancez l’application VS Code en tapant code dans une console ou code-insiders si vous avez installé Visual Studio Code Insiders.
    2. Lancez Quick Open sur Windows ou Linux en appuyant sur Ctrl+P. Sur macOS, appuyez sur Cmd+P.
    3. Dans Quick Open, tapez ext install powershell, puis appuyez sur Entrée.
    4. La vue Extensions s’ouvre dans la barre latérale. Sélectionnez l’extension de PowerShell de Microsoft.
    5. Cliquez sur le bouton Installer sur l’extension PowerShell de Microsoft.
    6. Après l’installation, si vous voyez le bouton Installer se changer en Recharger, cliquez sur Recharger.
    7. Une fois VS Code rechargé, vous pouvez passer à l’édition.

Par exemple, pour créer un fichier, cliquez sur Fichier > Nouveau. Pour l’enregistrer, cliquez sur Fichier > Enregistrer, puis indiquez un nom de fichier, comme HelloWorld.ps1. Pour fermer le fichier, cliquez sur X à côté du nom de fichier. Pour quitter VS Code, cliquez sur Fichier > Quitter.

Installation de l’extension PowerShell sur des systèmes restreints

Certains systèmes sont configurés pour exiger la validation de toutes les signatures de code. Vous risquez de recevoir l’erreur suivante :

Language server startup failed.

Ce problème peut se produire lorsque la stratégie d’exécution de PowerShell est définie par la stratégie de groupe Windows. Pour approuver manuellement PowerShell Editor Services et l’extension PowerShell pour VS Code, ouvrez une invite PowerShell et exécutez la commande suivante :

Import-Module $HOME\.vscode\extensions\ms-vscode.powershell*\modules\PowerShellEditorServices\PowerShellEditorServices.psd1

Le message Voulez-vous exécuter le logiciel provenant de cet éditeur non approuvé ? apparaît. Tapez A pour exécuter le fichier. Ouvrez ensuite VS Code et vérifiez que l’extension PowerShell fonctionne correctement. Si vous rencontrez encore des problèmes pour démarrer, indiquez-le nous dans un problème GitHub.

Choisir la version de PowerShell à utiliser avec l’extension

Maintenant que PowerShell peut s’installer côte à côte avec Windows PowerShell, vous pouvez utiliser une version spécifique de PowerShell avec l’extension PowerShell. Cette fonctionnalité examine quelques chemins connus sur différents systèmes d’exploitation pour détecter les installations de PowerShell.

Suivez les étapes ci-dessous pour choisir la version :

  1. Ouvrez la Palette de commandes sous Windows ou Linux avec Ctrl+Maj+P. Sur macOS, utilisez Cmd+Maj+P.
  2. Recherchez Session.
  3. Cliquez sur PowerShell : Afficher le menu de session.
  4. Choisissez la version de PowerShell que vous souhaitez utiliser dans la liste.

Si vous avez installé PowerShell à un emplacement non standard, il risque de ne pas apparaître d’emblée dans le menu de session. Pour étendre le menu de session, ajoutez vos propres chemins personnalisés en suivant la procédure décrite ci-dessous.

Le menu de session PowerShell est également accessible à partir de l’icône {} dans le coin inférieur droit de la barre d’état. Pointer sur cette icône ou la sélectionner affiche un raccourci vers le menu de session et une petite icône d’épingle. Si vous sélectionnez l’icône d’épingle, le numéro de version est ajouté à la barre d’état. Le numéro de version est un raccourci vers le menu de session qui nécessite moins de clics.

Notes

L’épinglage du numéro de version réplique le comportement de l’extension dans les versions de VS Code antérieure à la version 1.65. La version 1.65 de VS Code a modifié les API utilisées par l’extension PowerShell et a standardisé la barre d’état pour les extensions de langage.

Paramètres de configuration de Visual Studio Code

Tout d’abord, si vous n’êtes pas familiarisé avec le changement des paramètres dans VS Code, nous vous recommandons de lire la documentation sur les paramètres de Visual Studio Code.

Après avoir lu la documentation, vous pouvez ajouter des paramètres de configuration dans settings.json.

{
    "editor.renderWhitespace": "all",
    "editor.renderControlCharacters": true,
    "files.trimTrailingWhitespace": true,
    "files.encoding": "utf8bom",
    "files.autoGuessEncoding": true
}

Si vous ne souhaitez pas que ces paramètres affectent tous les types de fichiers, VS Code autorise également les configurations propres à un langage. Vous pouvez créer un paramètre propre au langage en plaçant des paramètres dans un champ [<language-name>]. Par exemple :

{
    "[powershell]": {
        "files.encoding": "utf8bom",
        "files.autoGuessEncoding": true
    }
}

Conseil

Pour plus d’informations sur l’encodage de fichier dans VS Code, consultez Présentation de l’encodage de fichier. Consultez également Comment répliquer l’expérience ISE dans VS Code afin d’obtenir d’autres conseils de configuration de VS Code pour l’édition avec PowerShell.

Ajouter ses propres chemins PowerShell au menu de session

Il est possible d’ajouter d’autres chemins d’exécutables PowerShell au menu de session via le paramètre Visual Studio Code : powershell.powerShellAdditionalExePaths.

Pour ce faire, utilisez l’interface utilisateur graphique :

  1. Dans la Palette de commandes, recherchez et sélectionnez Ouvrir les paramètres utilisateur. Vous pouvez également utiliser le raccourci clavier sur Windows ou Linux Ctrl+,. Sur macOS, utilisez Cmd+,.
  2. Dans l’éditeur Paramètres, recherchez les chemins de fichiers exécutables supplémentaires PowerShell.
  3. Cliquez sur Add Item (Ajouter un élément).
  4. Pour la Clé (sous Élément), indiquez le nom de votre choix pour cette installation PowerShell supplémentaire.
  5. Pour la Valeur (sous Valeur), fournissez le chemin absolu du fichier exécutable lui-même.

Vous pouvez ajouter autant de chemins que vous le souhaitez. Les éléments ajoutés s’affichent dans le menu de session avec la clé donnée comme nom.

Vous pouvez également ajouter des paires clé-valeur à l’objet powershell.powerShellAdditionalExePaths dans votre settings.json :

{
    "powershell.powerShellAdditionalExePaths": {
        "Downloaded PowerShell": "C:/Users/username/Downloads/PowerShell/pwsh.exe",
        "Built PowerShell": "C:/Users/username/src/PowerShell/src/powershell-win-core/bin/Debug/net6.0/win7-x64/publish/pwsh.exe"
    },
}

Notes

Avant la version 2022.5.0 de l’extension, ce paramètre était une liste d’objets avec les clés obligatoires exePath et versionName. Un changement cassant a été introduit pour prendre en charge la configuration via l’interface utilisateur graphique. Si vous avez précédemment configuré ce paramètre, convertissez-le au nouveau format. La valeur indiquée pour versionName est maintenant la Clé, et la valeur donnée pour exePath est maintenant la Valeur. Vous pouvez le faire plus facilement en réinitialisant la valeur et en utilisant l’interface Paramètres.

Pour définir la version PowerShell par défaut, définissez la valeur powershell.powerShellDefaultVersion sur le texte affiché dans le menu de session (texte utilisé pour la clé) :

{
    "powershell.powerShellAdditionalExePaths": {
        "Downloaded PowerShell": "C:/Users/username/Downloads/PowerShell/pwsh.exe",
    },
    "powershell.powerShellDefaultVersion": "Downloaded PowerShell",
}

Après avoir configuré ce paramètre, redémarrez VS Code ou rechargez la fenêtre VS Code actuelle avec la Palette de commandes, puis tapez Developer: Reload Window.

Si vous ouvrez le menu de session, vous voyez à présent vos installations supplémentaires de PowerShell.

Conseil

Si vous générez PowerShell à partir de la source, c’est un excellent moyen de tester votre build locale de PowerShell.

Débogage avec Visual Studio Code

Débogage sans espace de travail

Dans VS Code version 1.9 (ou ultérieure), vous pouvez déboguer des scripts PowerShell sans ouvrir le dossier qui les contient.

  1. Ouvrez le fichier de script PowerShell avec Fichier > Ouvrir le fichier...
  2. Définissez un point d’arrêt : sélectionnez une ligne, puis appuyez sur F9
  3. Appuyez sur F5 pour démarrer le débogage

Vous devez voir le volet d’actions de débogage qui permet de s’arrêter dans le débogueur, d’effectuer un pas à pas détaillé, de reprendre et d’arrêter le débogage.

Débogage d’espace de travail

Le débogage d’espace de travail fait référence au débogage dans le contexte d’un dossier ouvert dans le menu Fichier avec Ouvrir le dossier… . Le dossier que vous ouvrez est généralement votre dossier de projet PowerShell ou la racine de votre dépôt Git. Le débogage d’espace de travail vous permet de définir plusieurs configurations de débogage autres que simplement déboguer le fichier actuellement ouvert.

Suivez ces étapes pour créer un fichier de configuration de débogage :

  1. Ouvrez la vue Déboguer sur Windows ou Linux en appuyant sur Ctrl+Maj+D. Sur macOS, appuyez sur Cmd+Maj+D.

  2. Cliquez sur le lien Créer un fichier launch.json.

  3. À partir de l’invite Sélectionner l’environnement, choisissez PowerShell.

  4. Choisissez le type de débogage que vous souhaitez utiliser :

    • Lancer le fichier actuel : lancer et déboguer le fichier dans la fenêtre de l’éditeur actuellement active
    • Lancer le script : lancer et déboguer le fichier ou la commande spécifiés
    • Session interactive : déboguer les commandes exécutées à partir de la console intégrée
    • Attacher : attacher le débogueur à un processus hôte PowerShell en cours d’exécution

VS Code crée un répertoire et un fichier .vscode\launch.json à la racine du dossier de votre espace de travail pour stocker la configuration de débogage. Si vos fichiers se trouvent dans un référentiel Git, il est généralement préférable de valider le fichier launch.json. Le fichier launch.json présente le contenu suivant :

{
  "version": "0.2.0",
  "configurations": [
      {
          "type": "PowerShell",
          "request": "launch",
          "name": "PowerShell Launch (current file)",
          "script": "${file}",
          "args": [],
          "cwd": "${file}"
      },
      {
          "type": "PowerShell",
          "request": "attach",
          "name": "PowerShell Attach to Host Process",
          "processId": "${command.PickPSHostProcess}",
          "runspaceId": 1
      },
      {
          "type": "PowerShell",
          "request": "launch",
          "name": "PowerShell Interactive Session",
          "cwd": "${workspaceRoot}"
      }
  ]
}

Ce fichier représente les scénarios de débogage courants. Quand vous ouvrez ce fichier dans l’éditeur, un bouton Ajouter une configuration… apparaît. Vous pouvez cliquer sur ce bouton pour ajouter d’autres configurations de débogage PowerShell. Il est utile d’ajouter la configuration PowerShell : Lancer un script. Avec cette configuration, vous pouvez spécifier un fichier avec des arguments facultatifs qui sont utilisés quand vous appuyez sur F5, quel que soit le fichier actif dans l’éditeur.

Une fois la configuration de débogage établie, vous pouvez sélectionner la configuration que vous souhaitez utiliser pendant une session de débogage. Sélectionnez une configuration dans la liste déroulante de la configuration de débogage, dans la barre d’outils de la vue Déboguer.

Résolution des problèmes de l’extension PowerShell

Si vous rencontrez des problèmes pendant l’utilisation de VS Code pour le développement de scripts PowerShell, consultez le guide de résolution des problèmes sur GitHub.

Ressources utiles

Voici quelques vidéos et billets de blogs pouvant être utiles pour bien démarrer avec l’extension PowerShell pour VS Code :

Videos

Billets de blog :

Code source du projet d’extension PowerShell

Vous trouverez le code source de l’extension PowerShell sur GitHub.

Si vous êtes intéressé à contribuer, les demandes de tirage (Pull requests) sont très appréciées. Pour commencer, suivez les instructions de la documentation du développeur sur GitHub.