PowerShell-Editor-Unterstützung für Azure Data Studio

Diese Erweiterung bietet umfassende Unterstützung für den PowerShell-Editor in Azure Data Studio. Jetzt können Sie PowerShell-Skripts mit der ausgezeichneten IDE-ähnlichen Schnittstelle schreiben und debuggen, die Azure Data Studio bereitstellt.

PowerShell extension

Features

  • Syntaxhervorhebung
  • Codeausschnitte
  • IntelliSense für Cmdlets und mehr
  • Von PowerShell Script Analyzer bereitgestellte regelbasierte Analyse
  • „Gehe zu Definition“ von Cmdlets und Variablen
  • „Verweise suchen“ von Cmdlets und Variablen
  • Ermittlung von Dokument- und Arbeitsbereichssymbolen
  • Auswahl von „Ausgewählte ausführen“ in PowerShell-Code mithilfe von F8
  • Starten der Onlinehilfe für das Symbol unter dem Cursor mithilfe von STRG+F1
  • Grundlegende interaktive Konsolenunterstützung!

Installieren der Erweiterung

Sie können das offizielle Release der PowerShell-Erweiterung installieren, indem Sie die Schritte in der Azure Data Studio-Dokumentation ausführen. Suchen Sie im Bereich „Erweiterungen“ nach der Erweiterung „PowerShell“, und installieren Sie sie dort. Sie werden automatisch über alle zukünftigen Updates der Erweiterung benachrichtigt.

Sie können auch ein VSIX-Paket von unserer Seite Releases herunterladen und über die Befehlszeile installieren:

azuredatastudio --install-extension PowerShell-<version>.vsix

Plattformunterstützung

  • Windows 7 bis 10 mit Windows PowerShell V3 und höher und PowerShell Core
  • Linux mit PowerShell Core (alle von PowerShell unterstützten Distributionen)
  • macOS mit PowerShell Core

In den FAQ finden Sie Antworten auf häufig gestellte Fragen.

Installieren von PowerShell Core

Wenn Sie Azure Data Studio unter macOS oder Linux ausführen, müssen Sie möglicherweise auch PowerShell Core installieren.

PowerShell Core ist ein Open-Source-Projekt auf GitHub. Weitere Informationen zur Installation von PowerShell Core auf macOS- oder Linux-Plattformen finden Sie in den folgenden Artikeln:

Beispielskripts

Im examples-Ordner der Erweiterung finden Sie einige Beispielskripts, mit denen Sie die PowerShell-Funktionen zum Bearbeiten und Debuggen erkunden können. Weitere Informationen zur Verwendung finden Sie in der enthaltenen README.md-Datei.

Dieser Ordner befindet sich im folgenden Pfad:

$HOME/.azuredatastudio/extensions/microsoft.powershell-<version>/examples

Wenn Sie die Vorschauversion der Erweiterung verwenden, befindet sich der Ordner hier:

$HOME/.azuredatastudio/extensions/microsoft.powershell-preview-<version>/examples

Um die Beispiele der Erweiterung in Azure Data Studio zu öffnen und anzuzeigen, führen Sie den folgenden Code an der PowerShell-Eingabeaufforderung aus:

azuredatastudio (Get-ChildItem $Home\.azuredatastudio\extensions\microsoft.powershell-*\examples)[-1]

Erstellen und Öffnen von Dateien

Um im Editor eine neue Datei zu erstellen und zu öffnen, verwenden Sie den Befehl „New-EditorFile“ im integrierten PowerShell-Terminal.

PS C:\temp> New-EditorFile ExportData.ps1

Dieser Befehl funktioniert für jeden Dateityp, nicht nur für PowerShell-Dateien.

PS C:\temp> New-EditorFile ImportData.py

Um eine oder mehrere Dateien in Azure Data Studio zu öffnen, verwenden Sie den Befehl Open-EditorFile.

Open-EditorFile ExportData.ps1, ImportData.py

Kein Fokus auf der Konsole beim Ausführen

Wenn Sie häufiger mit SSMS arbeiten, kennen Sie das: Sie können eine bereits ausgeführte Abfrage erneut ausführen, ohne zuvor zum Abfragebereich zurückkehren zu müssen. In diesem Fall kommt Ihnen das Standardverhalten des Code-Editors möglicherweise etwas fremd vor. Um den Fokus im Editor beizubehalten, wenn Sie den Code mit F8 ausführen, ändern Sie die folgende Einstellung:

"powershell.integratedConsole.focusConsoleOnExecute": false

Der Standardwert lautet aus Gründen der Barrierefreiheit true.

Beachten Sie, dass diese Einstellung verhindert, dass der Fokus zur Konsole wechselt, auch wenn Sie einen Befehl verwenden, der explizit eine Eingabe erfordert, wie z.B. Get-Credential.

SQL-PowerShell-Beispiele

Um diese Beispiele (unten) verwenden zu können, müssen Sie das Modul „SqlServer“ aus dem PowerShell-Katalog installieren.

Install-Module -Name SqlServer

Hinweis

Ab Version 21.1.18102 unterstützt das SqlServer-Modul zusätzlich zu Windows PowerShell auch PowerShell Core 6.2 und höher.

In diesem Beispiel wird das Get-SqlInstance-Cmdlet verwendet, um die Server-SMO-Objekte für ServerA und ServerB abzurufen. Die Standardausgabe für diesen Befehl enthält den Instanznamen, die Version, das Service Pack und die CU-Updateebene der Instanzen.

Get-SqlInstance -ServerInstance ServerA, ServerB

Die Ausgabe sieht ähnlich wie das folgende Beispiel aus:

Instance Name             Version    ProductLevel UpdateLevel  HostPlatform HostDistribution
-------------             -------    ------------ -----------  ------------ ----------------
ServerA                   13.0.5233  SP2          CU4          Windows      Windows Server 2016 Datacenter
ServerB                   14.0.3045  RTM          CU12         Linux        Ubuntu

Das SqlServer-Modul enthält einen Anbieter namens SQLRegistration, mit dem Sie programmgesteuert auf die folgenden Arten gespeicherter SQL Server-Verbindungen zugreifen können:

  • Datenbank-Engine-Server (registrierte Server)
  • Zentraler Verwaltungsserver
  • Analysis Services
  • Integrationsdienste
  • Reporting Services

Im folgenden Beispiel wird mit dir (einem Alias für Get-ChildItem) die Liste aller SQL Server-Instanzen abgerufen, die in der Datei mit den registrierten Servern aufgeführt sind.

dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse

Die Ausgabe sieht ähnlich wie das folgende Beispiel aus:

Mode Name
---- ----
-    ServerA
-    ServerB
-    localhost\SQL2017
-    localhost\SQL2016Happy
-    localhost\SQL2017

Bei vielen Vorgängen, die eine Datenbank oder Objekte in einer Datenbank einbeziehen, kann das Cmdlet Get-SqlDatabase verwendet werden. Wenn Sie Werte für den -ServerInstance-Parameter und den -Database-Parameter angeben, wird nur dieses Datenbankobjekt abgerufen. Wenn Sie jedoch nur den -ServerInstance-Parameter angeben, wird eine vollständige Liste aller Datenbanken in dieser Instanz zurückgegeben.

Die Ausgabe sieht ähnlich wie das folgende Beispiel aus:

Name                 Status           Size     Space  Recovery Compat. Owner
                                            Available  Model     Level
----                 ------           ---- ---------- -------- ------- -----
AdventureWorks2017   Normal      336.00 MB   57.01 MB Simple       140 sa
master               Normal        6.00 MB  368.00 KB Simple       140 sa
model                Normal       16.00 MB    5.53 MB Full         140 sa
msdb                 Normal       48.44 MB    1.70 MB Simple       140 sa
PBIRS                Normal      144.00 MB   55.95 MB Full         140 sa
PBIRSTempDB          Normal       16.00 MB    4.20 MB Simple       140 sa
SSISDB               Normal      325.06 MB   26.21 MB Full         140 sa
tempdb               Normal       72.00 MB   61.25 MB Simple       140 sa
WideWorldImporters   Normal         3.2 GB     2.6 GB Simple       130 sa

Im nächsten Beispiel wird mit dem Cmdlet Get-SqlDatabase eine Liste aller Datenbanken auf der Instanz „ServerB“ abgerufen. Anschließend wird (mithilfe des Cmdlets Out-GridView) ein Raster bzw. eine Tabelle dargestellt, in dem bzw. der Sie auswählen können, welche Datenbanken gesichert werden sollen. Sobald der Benutzer auf die Schaltfläche „OK“ klickt, werden nur die markierten Datenbanken gesichert.

Get-SqlDatabase -ServerInstance ServerB |
Out-GridView -PassThru |
Backup-SqlDatabase -CompressionOption On

In diesem Beispiel wird wiederum eine Liste aller SQL Server-Instanzen abgerufen, die in der Datei mit registrierten Servern aufgeführt sind. Anschließend wird das Get-SqlAgentJobHistory-Element abgerufen, das jeden fehlerhaften SQL Agent-Auftrag seit Mitternacht für jede aufgeführte SQL Server-Instanz meldet.

dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse |
WHERE {$_.Mode -ne 'd' } |
FOREACH {
    Get-SqlAgentJobHistory -ServerInstance  $_.Name -Since Midnight -OutcomesType Failed
}

Im folgenden Beispiel wird zunächst mit dir (einem Alias für Get-ChildItem) die Liste aller SQL Server-Instanzen abgerufen, die in der Datei „Registrierte Server“ aufgeführt sind. Danach rufen wir mit dem Cmdlet Get-SqlDatabase eine Liste mit Datenbanken für jede dieser Instanzen ab.

dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse |
WHERE { $_.Mode -ne 'd' } |
FOREACH {
    Get-SqlDatabase -ServerInstance $_.Name
}

Die Ausgabe sieht ähnlich wie das folgende Beispiel aus:

Name                 Status           Size  Space     Recovery Compat. Owner
                                            Available Model    Level
----                 ------           ---- ---------- -------- ------- -----
AdventureWorks2017   Normal      336.00 MB   57.01 MB Simple       140 sa
master               Normal        6.00 MB  368.00 KB Simple       140 sa
model                Normal       16.00 MB    5.53 MB Full         140 sa
msdb                 Normal       48.44 MB    1.70 MB Simple       140 sa
PBIRS                Normal      144.00 MB   55.95 MB Full         140 sa
PBIRSTempDB          Normal       16.00 MB    4.20 MB Simple       140 sa
SSISDB               Normal      325.06 MB   26.21 MB Full         140 sa
tempdb               Normal       72.00 MB   61.25 MB Simple       140 sa
WideWorldImporters   Normal         3.2 GB     2.6 GB Simple       130 sa

Melden von Problemen

Wenn Probleme mit der PowerShell-Erweiterung auftreten, finden Sie in der Dokumentation zur Problembehandlung Informationen zum Diagnostizieren und Melden von Problemen.

Sicherheitshinweis

Informationen zu Sicherheitsproblemen finden Sie hier.

Mitwirken am Code

Informationen dazu, wie Sie an dieser Erweiterung mitwirken können, finden Sie in der Dokumentation zur Entwicklung.

Maintainer

Lizenz

Diese Erweiterung ist unter der MIT-Lizenz lizenziert. Informationen zu den Binärdateien von Drittanbietern, die in Releases dieses Projekts enthalten sind, finden Sie in der Datei mit Hinweisen zu Drittanbietern.

Verhaltenskodex

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Kommentare haben.