Verwenden von Visual Studio Code für die Entwicklung mit PowerShell

Visual Studio Code (VS Code) ist ein plattformübergreifender Skript-Editor von Microsoft. In Verbindung mit der PowerShell-Erweiterung bietet er eine umfassende und interaktive Oberfläche zur Skriptbearbeitung, die das Schreiben zuverlässiger PowerShell-Skripts vereinfacht. Visual Studio Code mit PowerShell-Erweiterung ist der empfohlene Editor zum Schreiben von PowerShell-Skripts.

Die folgenden PowerShell-Versionen werden unterstützt:

  • PowerShell 7.2 und höher (Windows, macOS und Linux)
  • Windows PowerShell 5.1 (nur Windows) mit .NET Framework 4.8

Hinweis

Visual Studio Code ist nicht identisch mit Visual Studio.

Erste Schritte

Prüfen Sie, ob PowerShell auf Ihrem System vorhanden ist, bevor Sie starten. Aktuelle Workloads unter Windows, macOS und Linux finden Sie unter den folgenden Links:

Herkömmliche Windows PowerShell-Workloads finden Sie unter Installieren von Windows PowerShell.

Wichtig

Die Windows PowerShell ISE ist für Windows weiterhin verfügbar. Sie befindet sich jedoch nicht mehr in der aktiven Featureentwicklung. Die ISE funktioniert nur mit PowerShell 5.1 und früher. Als Windows-Komponente wird sie weiterhin offiziell mit Sicherheits- und Wartungsfixes hoher Priorität unterstützt. Es ist nicht geplant, die ISE aus Windows zu entfernen.

Installieren von VS Code und der PowerShell-Erweiterung

  1. Installieren Sie Visual Studio Code. Weitere Informationen finden Sie in der Übersicht Einrichten von Visual Studio Code.

    Dort finden Sie Installationsanweisungen für jede Plattform:

  2. Installieren Sie die PowerShell-Erweiterung.

    1. Starten Sie die VS Code-App, indem Sie code in einer Konsole eingeben bzw. code-insiders, falls Sie Visual Studio Code für Insider installiert haben.
    2. Starten Sie Quick Open unter Windows oder Linux, indem Sie STRG+P drücken. Drücken Sie unter macOS Cmd+P.
    3. Geben Sie in Quick Open ext install powershell ein, und drücken Sie die EINGABETASTE.
    4. Dann öffnet sich die Ansicht Erweiterungen in der Seitenleiste. Wählen Sie die PowerShell-Erweiterung für Microsoft aus.
    5. Klicken Sie auf die Schaltfläche Installieren in der PowerShell-Erweiterung für Microsoft.
    6. Nach der Installation ändert sich die Schaltfläche Installieren in Erneut laden. Klicken Sie auf Erneut laden.
    7. Nachdem VS Code neu geladen wurde, können Sie Bearbeitungen vornehmen.

Beispielsweise um eine neue Datei zu erzeugen, klicken Sie auf Datei > Neu. Klicken Sie zum Speichern auf Datei > Speichern, und geben Sie anschließend einen Dateinamen ein, z. B. HelloWorld.ps1. Klicken Sie auf X neben dem Dateinamen, um die Datei zu schließen. Um VS Code zu beenden, wählen Sie Datei > Beenden.

Installieren der PowerShell-Erweiterung auf eingeschränkten Systemen

Einige Systeme sind so eingerichtet, dass alle Codesignaturen überprüft werden müssen. Unter Umständen wird der folgende Fehler angezeigt:

Language server startup failed.

Dieses Problem kann auftreten, wenn die PowerShell-Ausführungsrichtlinie von Windows-Gruppenrichtlinie festgelegt ist. Öffnen Sie zur manuellen Genehmigung der Editor-Dienste von PowerShell und der PowerShell-Erweiterung für VS Code eine PowerShell-Eingabeaufforderung, und führen Sie den folgenden Befehl aus:

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

Sie werden gefragt: Möchten Sie Software von diesem nicht vertrauenswürdigen Herausgeber ausführen? Geben Sie „A“ ein, um die Datei auszuführen. Öffnen Sie dann VS Code, und überprüfen Sie, ob die PowerShell-Erweiterung ordnungsgemäß funktioniert. Wenn weiterhin Probleme auftreten, lassen Sie uns dies in einem GitHub-Issue wissen.

Auswählen einer Version von PowerShell für die Verwendung mit der Erweiterung

Mit einer parallelen Installation von PowerShell und Windows PowerShell ist es jetzt möglich, eine bestimmte Version von PowerShell mit der PowerShell-Erweiterung zu verwenden. Dieses Feature sucht in ein paar bekannten Pfaden unter verschiedenen Betriebssystemen, um PowerShell-Installationen zu ermitteln.

Verwenden Sie die folgenden Schritte, um die Version auszuwählen:

  1. Öffnen Sie die Befehlspalette unter Windows oder Linux mit STRG+UMSCHALT+P. Verwenden Sie unter macOS Cmd+UMSCHALT+P.
  2. Suchen Sie nach Sitzung.
  3. Klicken Sie auf PowerShell: Menü „Sitzung“ anzeigen.
  4. Wählen Sie die Version von PowerShell aus der Liste aus, die Sie verwenden möchten.

Wenn Sie PowerShell an einem untypischen Speicherort installiert haben, wird es möglicherweise anfangs nicht im Menü „Sitzung“ angezeigt. Sie können das Menü „Sitzung“ erweitern, indem Sie Ihre eigenen benutzerdefinierten Pfade hinzufügen, wie unten beschrieben.

Sie können das PowerShell-Sitzungsmenü auch über das Symbol {} unten rechts in der Statusleiste aufrufen. Wenn Sie mit der Maus auf dieses Symbol gehen oder es auswählen, werden eine Verknüpfung zum Sitzungsmenü und ein kleines Stecknadelsymbol angezeigt. Wählen Sie das Stecknadelsymbol aus, um die Versionsnummer an die Statusleiste anzuheften. Die Versionsnummer ist nun mit dem Sitzungsmenü verknüpft, sodass Sie es mit weniger Klicks aufrufen können.

Hinweis

Das Anheften der Versionsnummer funktioniert genauso wie die Erweiterung in den VS Code-Versionen vor 1.65. Ab Version 1.65 von VS Code wurden die APIs für die PowerShell-Erweiterung verändert und die Statusleiste für Spracherweiterungen standardisiert.

Konfigurationseinstellungen für Visual Studio Code

Wenn Sie mit dem Ändern von Einstellungen in VS Code nicht vertraut sind, sollten Sie die Dokumentation zu den Visual Studio Code-Einstellungen lesen.

Anschließend können Sie Konfigurationseinstellungen in settings.json hinzufügen.

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

Wenn Sie nicht möchten, dass diese Einstellungen für alle Dateitypen gelten, können Sie in VS Code auch sprachspezifische Konfigurationen vornehmen. Sie können sprachspezifische Einstellungen erstellen, indem Sie Einstellungen in ein [<language-name>] einfügen. Beispiel:

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

Tipp

Weitere Informationen zur Dateicodierung in VS Code finden Sie unter Informationen zur Dateicodierung. Weitere Tipps zum Konfigurieren von VS Code für die PowerShell-Bearbeitung finden Sie unter Replizieren der ISE-Benutzeroberfläche in VS Code.

Hinzufügen Ihres eigenen PowerShell-Pfads zum Menü „Sitzung“

Sie können dem Sitzungsmenü über die folgende Visual Studio Code-Einstellung andere PowerShell-Pfade für ausführbare Dateien hinzufügen: powershell.powerShellAdditionalExePaths.

Dazu können Sie die GUI verwenden:

  1. Suchen Sie in der Befehlspalette nach, und wählen Sie Benutzereinstellungen öffnen aus. Verwenden Sie alternativ die Tastenkombination unter Windows oder Linux STRG+,. Verwenden Sie unter macOS Cmd+,.
  2. Suchen Sie im Einstellungs-Editor nach zusätzlichen Exe-Pfaden für PowerShell.
  3. Klicken Sie auf Add Item (Element hinzufügen).
  4. Geben Sie für den Schlüssel (unter Element) Ihren beliebigen Namen für diese zusätzliche PowerShell-Installation an.
  5. Geben Sie für den Wert (unter Wert) den absoluten Pfad für die ausführbare Datei selbst an.

Sie können beliebig viele zusätzliche Pfade hinzufügen. Die hinzugefügten Elemente werden im Sitzungsmenü mit der angegebenen Taste als Name angezeigt.

Alternativ können Sie dem Objekt powershell.powerShellAdditionalExePaths in Ihrer settings.json-Datei Schlüssel-Wert-Paare hinzufügen:

{
    "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"
    },
}

Hinweis

Vor Version 2022.5.0 der Erweiterung war diese Einstellung eine Liste von Objekten mit den erforderlichen Schlüsseln exePath und versionName. Ein Breaking Change wurde eingeführt, um die Konfiguration über die GUI zu unterstützen. Wenn Sie diese Einstellung zuvor konfiguriert haben, konvertieren Sie sie in das neue Format. Der für versionName festgelegte Wert ist nun der Schlüssel, und der für exePath festgelegte Wert ist jetzt der Wert. Ein einfacherer Vorgang ist, den Wert zurückzusetzen und die Einstellungsschnittstelle zu verwenden.

Zum Festlegen der PowerShell-Standardversion legen Sie den Wert powershell.powerShellDefaultVersion auf den im Sitzungsmenü angezeigten Text fest (der für den Schlüssel verwendete Text):

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

Nachdem Sie diese Einstellung konfiguriert haben, starten Sie VS Code neu, oder laden Sie das aktuelle VS Code-Fenster über die Befehlspalette, und geben Sie Developer: Reload Window ein.

Wenn Sie das Menü „Sitzung“ öffnen, werden jetzt Ihre zusätzlichen PowerShell-Installationen angezeigt.

Tipp

Wenn Sie PowerShell aus der Quelle erstellen, ist dies eine hervorragende Möglichkeit zum Testen Ihres lokalen Builds von PowerShell.

Debuggen mit Visual Studio Code

Debuggen außerhalb des Arbeitsbereichs

In VS Code Version 1.9 (oder höher) können Sie PowerShell-Skripts debuggen, ohne den Ordner öffnen zu müssen, in dem das PowerShell-Skript enthalten ist.

  1. Öffnen Sie die PowerShell-Skriptdatei über Datei > Datei öffnen...
  2. Legen Sie einen Breakpoint fest (wählen Sie eine Zeile aus, und drücken Sie dann F9)
  3. Drücken Sie F5, um das Debuggen zu starten

Dann wird der Aktionsbereich „Debuggen“ angezeigt, über den Sie den Debugger anhalten und den Debugvorgang ausführen, fortsetzen oder abbrechen können.

Debuggen von Arbeitsbereichen

Wenn davon die Rede ist, Arbeitsbereiche zu debuggen, ist damit das Debuggen eines Ordners gemeint, den Sie über Ordner öffnen... im Menü Datei geöffnet haben. In der Regel ist dies der PowerShell-Projektordner oder der Stamm des Git-Repositorys. Beim Debuggen von Arbeitsbereichen kann nicht nur für die aktuell geöffnete Datei ein Debugvorgang ausgeführt werden, sondern es können auch mehrere Debugkonfigurationen definiert werden.

Führen Sie die folgenden Schritte aus, um eine Konfigurationsdatei für den Debugvorgang zu erstellen:

  1. Öffnen Sie die Ansicht Debuggen in Windows oder Linux, indem Sie STRG+UMSCHALT+D drücken. Drücken Sie unter macOS Cmd+UMSCHALT+D.

  2. Klicken Sie auf den Link zum Erstellen einer Datei „launch.json“ .

  3. Wählen Sie in der Eingabeaufforderung Umgebung auswählen die Option PowerShell aus.

  4. Wählen Sie den gewünschten Debugtyp aus:

    • Aktuelle Datei starten: Starten und Debuggen der Datei im aktuell aktiven Editor-Fenster
    • Skript starten: Starten und Debuggen der angegebenen Datei oder des angegebenen Befehls
    • Interaktive Sitzung: Debuggen von Befehlen, die über die integrierte Konsole ausgeführt werden
    • Anfügen: Anfügen des Debuggers an einen ausgeführten PowerShell-Hostvorgang

VS Code erstellt im Stamm Ihres Arbeitsbereichsordners ein Verzeichnis und eine Datei .vscode\launch.json zum Speichern der Debugkonfiguration. Wenn sich Ihre Dateien in einem Git-Repository befinden, sollten Sie einen Commit für die launch.json-Datei ausführen. Die launch.json-Datei beinhaltet:

{
  "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}"
      }
  ]
}

Diese Datei ist ein Beispiel für häufig auftretende Debugszenarios. Wenn Sie diese Datei im Editor öffnen, wird die Schaltfläche Konfiguration hinzufügen... angezeigt. Sie können auf diese Schaltfläche klicken, um weitere Debugkonfigurationen für PowerShell hinzuzufügen. Sie können zum Beispiel die Konfiguration PowerShell: Launch Script (PowerShell: Skript starten) hinzufügen. Mithilfe dieser Konfiguration können Sie eine Datei mit optionalen Argumenten angeben, die immer dann verwendet werden sollen, wenn Sie F5 drücken. Dabei macht es keinen Unterschied, welche Datei aktuell im Editor aktiv ist.

Nachdem die Debugkonfiguration eingerichtet wurde, können Sie auswählen, welche Konfiguration Sie während einer Debugsitzung verwenden möchten. Wählen Sie eine Konfiguration aus der Dropdownliste „Debugkonfiguration“ in der Symbolleiste der Ansicht Debuggen.

Problembehandlung für die PowerShell-Erweiterung

Wenn bei der Verwendung von VS Code für die PowerShell-Skriptentwicklung Probleme auftreten, sehen Sie sich den Leitfaden zur Problembehandlung auf GitHub an.

Nützliche Ressourcen

Im Folgenden sind einige Videos und Blogbeiträge aufgeführt, die bei den ersten Schritten mit der PowerShell-Erweiterung für VS Code hilfreich sein können:

Videos

Blogbeiträge

Quellcode des PowerShell-Erweiterungsprojekts

Sie finden den Quellcode der PowerShell-Erweiterung auf GitHub.

Wenn Sie an diesen Inhalten mitwirken möchten, sind Pull Requests sehr willkommen. Befolgen Sie die Schritte in der Entwicklerdokumentation auf GitHub, um loszulegen.