Supporto dell'editor PowerShell per Azure Data Studio
Questa estensione offre supporto avanzato per l'editor PowerShell in Azure Data Studio. È ora possibile scrivere ed eseguire il debug di script di PowerShell usando l'eccellente interfaccia di tipo IDE fornita da Azure Data Studio.
Funzionalità
- Evidenziazione della sintassi
- Frammenti di codice
- IntelliSense per cmdlet e altro
- Analisi basata su regole fornita dall'analizzatore script di PowerShell
- Passaggio alla definizione di cmdlet e variabili
- Ricerca dei riferimenti di cmdlet e variabili
- Individuazione dei simboli di documenti e aree di lavoro
- Esecuzione della parte selezionata di codice PowerShell con F8
- Avvio della Guida per il simbolo sotto il cursore con CTRL+F1
- Supporto di base della console interattiva
Installazione dell'estensione
Per installare la versione ufficiale dell'estensione PowerShell, seguire i passaggi descritti nella documentazione di Azure Data Studio. Nel riquadro Estensioni cercare l'estensione "PowerShell" e installarla. Si riceverà una notifica automatica degli aggiornamenti futuri dell'estensione.
È anche possibile installare un pacchetto VSIX dalla pagina delle versioni e installarlo tramite la riga di comando:
azuredatastudio --install-extension PowerShell-<version>.vsix
Piattaforme supportate
- Da Windows 7 a Windows 10 con Windows PowerShell V3 e versioni successive e PowerShell Core
- Linux con PowerShell Core (tutte le distribuzioni con supporto di PowerShell)
- macOS con PowerShell Core
Leggere le domande frequenti per trovare le risposte alle domande più comuni.
Installazione di PowerShell Core
Se si esegue Azure Data Studio in macOS o Linux, può essere necessario installare anche 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 examples
dell'estensione sono disponibili alcuni script di esempio che è possibile usare per esplorare le funzionalità di modifica e debug di PowerShell. Per altre informazioni sull'uso, vedere il file README.md incluso.
Questa cartella si trova nel percorso seguente:
$HOME/.azuredatastudio/extensions/microsoft.powershell-<version>/examples
oppure 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 nell'editor, usare New-EditorFile dal terminale PowerShell integrato.
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 comando Open-EditorFile
.
Open-EditorFile ExportData.ps1, ImportData.py
Stato non attivo sulla console durante l'esecuzione
Gli utenti abituati per lavorare con SSMS ricorderanno la possibilità di eseguire una query e poi eseguirla di nuovo senza dover tornare al riquadro della query. Per questi utenti, il comportamento predefinito dell'editor di codice potrebbe sembrare strano. Per lasciare lo stato attivo nell'editor quando si esegue con F8, modificare l'impostazione seguente:
"powershell.integratedConsole.focusConsoleOnExecute": false
Il valore predefinito è true
a scopo di accessibilità.
Tenere presente che questa impostazione impedirà che lo stato attivo passi alla console, anche quando si usa un comando che richiede in modo esplicito un input, ad esempio Get-Credential
.
Esempi di SQL PowerShell
Per usare gli esempi illustrati di seguito è necessario installare il modulo SqlServer da PowerShell Gallery.
Install-Module -Name SqlServer
Nota
Con la versione 21.1.18102
e successive, il modulo SqlServer
supporta PowerShell Core 6.2 e versioni successive, oltre a Windows PowerShell.
In questo esempio viene usato il cmdlet Get-SqlInstance
per ottenere gli oggetti Server SMO per ServerA e 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
Ecco un esempio del possibile 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 modulo SqlServer
contiene un provider denominato SQLRegistration
, che consente di accedere a livello di programmazione ai tipi seguenti di connessioni SQL Server salvate:
- Server del motore di database (Server registrati)
- Server di gestione centrale (CMS)
- Analysis Services
- Integration Services
- Reporting Services
Nell'esempio seguente si eseguirà un comando dir
(alias di Get-ChildItem
) per ottenere l'elenco di tutte le istanze di SQL Server elencate nel file dei server registrati.
dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse
Ecco un esempio del possibile 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 i valori per entrambi i parametri -ServerInstance
e -Database
, verrà recuperato solo l'oggetto di database. Se tuttavia si specifica solo il parametro -ServerInstance
, verrà restituito un elenco completo di tutti i database di tale istanza.
Ecco un esempio del possibile 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 cmdlet Get-SqlDatabase
per recuperare un elenco di tutti i database nell'istanza ServerB, quindi viene visualizzata una griglia/tabella (tramite il cmdlet Out-GridView
) per selezionare i database di cui eseguire il 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
Nell'esempio seguente viene di nuovo ottenuto l'elenco di tutte le istanze di SQL Server elencate nel file dei server registrati, quindi viene chiamato Get-SqlAgentJobHistory
, che segnala ogni processo di SQL Agent non riuscito dalla mezzanotte in poi, 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 verrà eseguito un comando dir
(alias di Get-ChildItem
) per ottenere l'elenco di tutte le istanze di SQL Server elencate nel file dei server registrati e quindi verrà usato il cmdlet Get-SqlDatabase
per ottenere un elenco dei database per ognuna di queste istanze.
dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse |
WHERE { $_.Mode -ne 'd' } |
FOREACH {
Get-SqlDatabase -ServerInstance $_.Name
}
Ecco un esempio del possibile 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
Per informazioni sulla diagnosi e la segnalazione dei problemi con l'estensione PowerShell, vedere la documentazione sulla risoluzione dei problemi.
Nota sulla sicurezza
Per eventuali problemi di sicurezza, vedere qui.
Contribuire al codice
Per altre informazioni su come contribuire a questa estensione, consultare la documentazione di sviluppo.
Gestori
- Keith Hill - @r_keith_hill
- Tyler Leonhardt - @TylerLeonhardt
- Rob Holt
Licenza
Questa estensione è concessa in licenza in base ai termini della licenza MIT. Per informazioni dettagliate sui file binari di terze parti inclusi nelle versioni di questo progetto, vedere il file delle comunicazioni di terze parti.
Codice di comportamento
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 opencode@microsoft.com per eventuali altre domande o commenti.