Condividi tramite


Supporto dell'editor di PowerShell per Azure Data Studio

Importante

Azure Data Studio verrà ritirato il 28 febbraio 2026. È consigliabile usare Visual Studio Code. Per altre informazioni sulla migrazione a Visual Studio Code, vedere Che cosa accade in Azure Data Studio?

Questa estensione offre supporto avanzato per l'editor di PowerShell in Azure Data Studio. È ora possibile scrivere ed eseguire il debug di script di PowerShell usando l'eccellente interfaccia simile all'IDE fornita da Azure Data Studio.

Estensione di PowerShell

Funzionalità

  • Evidenziazione della sintassi
  • Frammenti di codice
  • IntelliSense per i cmdlet e altro ancora
  • Analisi basata su regole fornita da PowerShell Script Analyzer
  • Passare a Definizione di cmdlet e variabili
  • Trova riferimenti ai cmdlet e alle variabili
  • Individuazione dei simboli dei documenti e dell'area di lavoro
  • Eseguire la selezione selezionata del codice di PowerShell usando F8
  • Avviare la Guida online per il simbolo sotto il cursore usando CTRL+F1
  • Supporto della console interattiva di base.

Installazione dell'estensione

È possibile installare la versione ufficiale dell'estensione PowerShell seguendo la procedura descritta nella documentazione di Azure Data Studio. Nel riquadro Estensioni cercare l'estensione "PowerShell" e installarla. Si riceverà una notifica automatica su eventuali aggiornamenti futuri dell'estensione.

È anche possibile installare un pacchetto VSIX dalla pagina Versioni e installarlo tramite la riga di comando:

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

Supporto delle piattaforme

  • Da Windows 7 a 10 con Windows PowerShell v3 e versioni successive e PowerShell Core
  • Linux con PowerShell Core (tutte le distribuzioni supportate da PowerShell)
  • macOS con PowerShell Core

Leggere le domande frequenti per le risposte alle domande comuni.

Installazione di PowerShell Core

Se si esegue Azure Data Studio in macOS o Linux, potrebbe anche essere necessario installare PowerShell Core.

PowerShell Core è un progetto open source in GitHub. Per altre informazioni sull'installazione di PowerShell Core in piattaforme macOS o Linux, vedere gli articoli seguenti:

Script di esempio

Nella cartella dell'estensione examples sono disponibili alcuni script di esempio che è possibile usare per individuare le funzionalità di modifica e debug di PowerShell. Per altre informazioni su come usarli, vedere il file di README.md incluso.

Questa cartella è disponibile nel percorso seguente:

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

o se si usa la versione di anteprima dell'estensione

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

Per aprire/visualizzare gli esempi dell'estensione in Azure Data Studio, eseguire il codice seguente dal prompt dei comandi di PowerShell:

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

Creazione e apertura di file

Per creare e aprire un nuovo file all'interno dell'editor, usare il New-EditorFile dall'interno del terminale integrato di PowerShell.

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

Questo comando funziona per qualsiasi tipo di file, non solo per i file di PowerShell.

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

Per aprire uno o più file in Azure Data Studio, usare il Open-EditorFile comando .

Open-EditorFile ExportData.ps1, ImportData.py

Nessuna attenzione alla console durante l'esecuzione

Per gli utenti che usano SSMS, si è in grado di eseguire una query e quindi di poterla ripetere senza dover tornare al riquadro della query. In questo caso, il comportamento predefinito dell'editor di codice potrebbe risultare strano. Per mantenere il focus nell'editor quando viene eseguito premendo F8, bisogna apportare la seguente modifica alle impostazioni:

"powershell.integratedConsole.focusConsoleOnExecute": false

Il valore predefinito è true a scopo di accessibilità.

Tenere presente che questa impostazione impedirà il focus di passare alla console, anche quando si utilizza un comando che richiede esplicitamente l'input, come Get-Credential.

Esempi di SQL PowerShell

Per usare questi esempi (di seguito), è necessario installare il modulo SqlServer da PowerShell Gallery.

Install-Module -Name SqlServer

Annotazioni

Con versione 21.1.18102 e versioni successive, il SqlServer modulo supporta PowerShell Core 6.2 e versioni successive, oltre a Windows PowerShell.

In questo esempio viene usato il Get-SqlInstance cmdlet per ottenere gli oggetti Server SMO per ServerA & ServerB. L'output predefinito per questo comando includerà il nome dell'istanza, la versione, il Service Pack e il livello di aggiornamento CU delle istanze.

Get-SqlInstance -ServerInstance ServerA, ServerB

Di seguito è riportato un esempio dell'aspetto dell'output:

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

Il SqlServer modulo contiene un provider denominato SQLRegistration che consente di accedere a livello di programmazione ai tipi seguenti di connessioni di SQL Server salvate:

  • Server del motore di database (server registrati)
  • Server di gestione centrale (CMS)
  • Servizi di analisi
  • Servizi di Integrazione
  • Servizi di Reportistica

Nell'esempio seguente si eseguirà un'operazione dir (alias per Get-ChildItem) per ottenere l'elenco di tutte le istanze di SQL Server elencate nel file server registrati.

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

Di seguito è riportato un esempio dell'aspetto dell'output:

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

Per molte operazioni che coinvolgono un database o gli oggetti all'interno di un database, è possibile usare il cmdlet Get-SqlDatabase. Se si specificano valori per i -ServerInstance parametri e -Database , verrà recuperato solo un oggetto di database. Tuttavia, se si specifica solo il -ServerInstance parametro , verrà restituito un elenco completo di tutti i database in tale istanza.

Di seguito è riportato un esempio dell'aspetto dell'output:

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

Nell'esempio seguente viene usato il Get-SqlDatabase cmdlet per recuperare un elenco di tutti i database nell'istanza ServerB, quindi viene visualizzata una griglia o una tabella (usando il cmdlet ) per selezionare i database di cui eseguire il Out-GridView backup. Quando l'utente fa clic sul pulsante "OK", verrà eseguito il backup solo dei database evidenziati.

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

In questo esempio, di nuovo, ottiene l'elenco di tutte le istanze di SQL Server elencate nel file server registrati, quindi chiama il Get-SqlAgentJobHistory che segnala ogni processo di SQL Agent non riuscito a partire da Mezzanotte, per ogni istanza di SQL Server elencata.

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

In questo esempio, eseguiremo un dir (alias per Get-ChildItem) per ottenere l'elenco di tutte le istanze di SQL Server indicate nel file dei server registrati e poi useremo il cmdlet Get-SqlDatabase per ottenere una lista dei database per ciascuna di queste istanze.

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

Di seguito è riportato un esempio dell'aspetto dell'output:

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

Segnalazione di problemi

Se si verificano problemi con l'estensione PowerShell, vedere la documentazione sulla risoluzione dei problemi per informazioni sulla diagnosi e la segnalazione dei problemi.

Nota sulla sicurezza

Per eventuali problemi di sicurezza, vedere qui.

Contributi al codice

Per altre informazioni su come contribuire a questa estensione, vedere la documentazione sullo sviluppo .

Manutentori

Licenza

Questa estensione è concessa in licenza con la licenza MIT. Per informazioni dettagliate sui file binari di terze parti inclusi nelle versioni di questo progetto, vedere il file di avvisi di terze parti .

Codice di condotta

Questo progetto ha adottato il codice di comportamento open source Microsoft. Per altre informazioni, vedere Code of Conduct FAQ (Domande frequenti sul Codice di comportamento) oppure contattare [email protected] per eventuali altre domande o commenti.