PowerShell Editor-ondersteuning voor Azure Data Studio

Deze extensie biedt uitgebreide ondersteuning voor PowerShell-editors in Azure Data Studio. U kunt nu PowerShell-scripts schrijven en fouten opsporen met behulp van de uitstekende IDE-achtige interface die Azure Data Studio biedt.

PowerShell extension

Functies

  • Syntaxismarkering
  • Codefragmenten
  • IntelliSense voor cmdlets en meer
  • Analyse op basis van regels van PowerShell Script Analyzer
  • Ga naar de definitie van cmdlets en variabelen
  • Verwijzingen van cmdlets en variabelen zoeken
  • Document- en werkruimtesymbooldetectie
  • Geselecteerde selectie van PowerShell-code uitvoeren met F8
  • Start online Help voor het symbool onder de cursor met Ctrl+F1
  • Basisondersteuning voor interactieve consoles.

De extensie installeren

U kunt de officiële versie van de PowerShell-extensie installeren door de stappen in de Documentatie van Azure Data Studio te volgen. Zoek in het deelvenster Extensies naar de extensie PowerShell en installeer deze daar. U ontvangt automatisch een melding over toekomstige uitbreidingsupdates.

U kunt ook een VSIX-pakket installeren vanaf de pagina Releases en installeren via de opdrachtregel:

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

Platformondersteuning

  • Windows 7 tot en met 10 met Windows PowerShell v3 en hoger en PowerShell Core
  • Linux met PowerShell Core (alle door PowerShell ondersteunde distributies)
  • macOS met PowerShell Core

Lees de veelgestelde vragen voor antwoorden op veelgestelde vragen.

PowerShell Core installeren

Als u Azure Data Studio uitvoert op macOS of Linux, moet u mogelijk ook PowerShell Core installeren.

PowerShell Core is een opensource-project op GitHub. Zie de volgende artikelen voor meer informatie over het installeren van PowerShell Core op macOS- of Linux-platforms:

Voorbeeldscripts

Er zijn enkele voorbeeldscripts in de map van examples de extensie die u kunt gebruiken om powerShell-bewerkings- en foutopsporingsfunctionaliteit te detecteren. Bekijk het opgenomen README.md-bestand voor meer informatie over het gebruik ervan.

Deze map vindt u op het volgende pad:

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

of als u de preview-versie van de extensie gebruikt

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

Als u de voorbeelden van de extensie in Azure Data Studio wilt openen/weergeven, voert u de volgende code uit vanaf de PowerShell-opdrachtprompt:

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

Bestanden maken en openen

Als u een nieuw bestand in de editor wilt maken en openen, gebruikt u het Bestand New-Editor vanuit de geïntegreerde PowerShell-terminal.

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

Deze opdracht werkt voor elk bestandstype, niet alleen Voor PowerShell-bestanden.

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

Gebruik de Open-EditorFile opdracht om een of meer bestanden in Azure Data Studio te openen.

Open-EditorFile ExportData.ps1, ImportData.py

Geen focus op de console tijdens het uitvoeren

Voor gebruikers die gewend zijn om met SSMS te werken, bent u gewend om een query uit te voeren en deze vervolgens opnieuw uit te voeren zonder dat u terug hoeft te gaan naar het queryvenster. In dit geval kan het standaardgedrag van de code-editor vreemd voor u zijn. Wijzig de volgende instelling om de focus in de editor te houden wanneer u deze uitvoert met F8 :

"powershell.integratedConsole.focusConsoleOnExecute": false

De standaardwaarde is true voor toegankelijkheidsdoeleinden.

Houd er rekening mee dat deze instelling voorkomt dat de focus wordt verplaatst naar de console, zelfs wanneer u een opdracht gebruikt die expliciet invoer aanroept, zoals Get-Credential.

Voorbeelden van SQL PowerShell

Als u deze voorbeelden (hieronder) wilt gebruiken, moet u de SqlServer-module installeren vanuit de PowerShell Gallery.

Install-Module -Name SqlServer

Notitie

Met versie 21.1.18102 en hoger ondersteunt de SqlServer module PowerShell Core 6.2 en hoger, naast Windows PowerShell.

In dit voorbeeld gebruiken we de Get-SqlInstance cmdlet om de Server-SMO-objecten op te halen voor ServerA & ServerB. De standaarduitvoer voor deze opdracht bevat de exemplaarnaam, versie, Service Pack en CU-updateniveau van de exemplaren.

Get-SqlInstance -ServerInstance ServerA, ServerB

Hier volgt een voorbeeld van hoe deze uitvoer eruitziet:

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

De SqlServer module bevat een provider SQLRegistration waarmee u programmatisch toegang kunt krijgen tot de volgende typen opgeslagen SQL Server-verbindingen:

  • Database Engine-server (geregistreerde servers)
  • Central Management Server (CMS)
  • Analysis Services
  • Integratieservices
  • Reporting Services

In het volgende voorbeeld doen we een dir (alias voor Get-ChildItem) om de lijst op te halen met alle SQL Server-exemplaren die worden vermeld in het bestand Geregistreerde servers.

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

Hier volgt een voorbeeld van hoe deze uitvoer eruit kan zien:

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

Voor veel bewerkingen die betrekking hebben op een database of objecten in een database, kan de Get-SqlDatabase cmdlet worden gebruikt. Als u waarden opgeeft voor zowel de -ServerInstance als -Database de parameters, wordt slechts dat ene databaseobject opgehaald. Als u echter alleen de -ServerInstance parameter opgeeft, wordt er een volledige lijst met alle databases op dat exemplaar geretourneerd.

Hier volgt een voorbeeld van hoe deze uitvoer eruitziet:

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

In dit volgende voorbeeld wordt de Get-SqlDatabase cmdlet gebruikt om een lijst met alle databases op het ServerB-exemplaar op te halen. Vervolgens wordt een raster/tabel (met behulp van de Out-GridView cmdlet) weergegeven om te selecteren welke databases er een back-up van moeten maken. Zodra de gebruiker op de knop OK klikt, wordt alleen een back-up gemaakt van de gemarkeerde databases.

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

In dit voorbeeld wordt opnieuw een lijst opgehaald met alle SQL Server-exemplaren die worden vermeld in het bestand Geregistreerde servers en wordt vervolgens de Get-SqlAgentJobHistory lijst aanroepen die elke mislukte SQL Agent-taak rapporteert sinds middernacht, voor elk SQL Server-exemplaar dat wordt vermeld.

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

In dit voorbeeld doen we een dir (alias voor Get-ChildItem) om de lijst op te halen met alle SQL Server-exemplaren die worden vermeld in het bestand Geregistreerde servers en vervolgens de Get-SqlDatabase cmdlet gebruiken om een lijst met databases op te halen voor elk van deze exemplaren.

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

Hier volgt een voorbeeld van hoe deze uitvoer eruitziet:

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

Problemen melden

Als u problemen ondervindt met de PowerShell-extensie, raadpleegt u de documentatie voor probleemoplossing voor informatie over het diagnosticeren en rapporteren van problemen.

Beveiligingsnotitie

Zie hier voor eventuele beveiligingsproblemen.

Bijdragen aan de code

Bekijk de ontwikkeldocumentatie voor meer informatie over hoe u een bijdrage kunt leveren aan deze extensie.

Maintainers

Licentie

Deze extensie is gelicentieerd onder de MIT-licentie. Zie het bestand met kennisgevingen van derden voor meer informatie over de binaire bestanden van derden die we opnemen met releases van dit project.

Gedragscode

Dit project onderschrijft de Microsoft Open Source gedragscode. Raadpleeg voor meer informatie de veelgestelde vragen over de gedragscode of neem contact op via opencode@microsoft.com als u aanvullende vragen of opmerkingen hebt.