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.
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
- Keith Hill - @r_keith_hill
- Tyler Leonhardt - @TylerLeonhardt
- Rob Holt
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.