Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Installare SQL Server PowerShell
Sono disponibili due moduli di SQL Server PowerShell. SqlServer e SQLPS.
Il modulo SqlServer è il modulo di PowerShell corrente da usare.
Il modulo SQLPS è incluso nell'installazione di SQL Server (per compatibilità con le versioni precedenti) ma non viene più aggiornato.
Il modulo SqlServer contiene versioni aggiornate dei cmdlet in SQLPS e include nuovi cmdlet per supportare le funzionalità SQL più recenti.
Le versioni precedenti del modulo SqlServersono state incluse in /sql/ssms/download-sql-server-management-studio-ssms, ma solo con le versioni 16.x di SSMS.
Per usare PowerShell con SSMS 17.0 e versioni successive, installare il modulo SqlServer da PowerShell Gallery.
È anche possibile usare il supporto dell'editor di PowerShell per Azure Data Studio.
Perché il modulo è stato modificato da SQLPS a SqlServer?
Per distribuire gli aggiornamenti di SQL PowerShell, è stato necessario modificare l'identità del modulo SQL PowerShell e il wrapper noto come SQLPS.exe. A causa di questa modifica, sono ora disponibili due moduli di SQL PowerShell, il modulo SqlServer e il modulo SQLPS .
Aggiornare gli script di PowerShell se si importa il modulo SQLPS.
Se sono presenti script di PowerShell che eseguono Import-Module -Name SQLPS
e si vuole sfruttare le nuove funzionalità del provider e i nuovi cmdlet, è necessario modificarli in Import-Module -Name SqlServer
. Il nuovo modulo viene installato nella %ProgramFiles%\WindowsPowerShell\Modules\SqlServer
cartella. Di conseguenza, non è necessario aggiornare la variabile $env:PSModulePath. Se sono presenti script che usano una versione di terze parti o community di un modulo denominato SqlServer, usare il parametro Prefix per evitare conflitti di nomi.
È consigliabile avviare lo script con Import-Module SQLServer per evitare problemi side-by-side se il modulo SQLPS è installato nello stesso computer.
Questa sezione si applica agli script eseguiti da PowerShell e non a SQL Agent. Il nuovo modulo può essere usato con i passaggi del processo di SQL Agent usando #NOSQLPS.
Componenti di PowerShell di SQL Server
Il modulo SqlServer include:
Provider di PowerShell, che consente un meccanismo di spostamento semplice simile ai percorsi del file system. È possibile compilare percorsi simili ai percorsi del file system, in cui l'unità è associata a un modello a oggetti di gestione di SQL Server e i nodi sono basati sulle classi del modello a oggetti. È quindi possibile usare comandi familiari, ad esempio cd (alias per Set-Location) e dir (alias per Get-ChildItem) per esplorare i percorsi in modo analogo al modo in cui si spostano le cartelle in una finestra del prompt dei comandi. È possibile usare altri comandi, ad esempio ren (alias per Rename-Item) o del (alias per Remove-Item), per eseguire azioni sui nodi nel percorso.
Set di cmdlet che supportano azioni come l'esecuzione di uno script sqlcmd contenente Transact-SQL o istruzioni XQuery.
Provider e cmdlet AS, che prima di essere installati separatamente.
Versioni di SQL Server
I cmdlet di SQL PowerShell possono essere usati per gestire le istanze del database SQL di Azure, di Azure Synapse Analytics e di tutti i prodotti SQL Server supportati.
Identificatori di SQL Server che contengono caratteri non supportati nei percorsi di PowerShell
I Encode-Sqlname
cmdlet (alias per ConvertTo-EncodedSqlName) e Decode-Sqlname
(alias per ConvertFrom-EncodedSqlName) consentono di specificare gli identificatori di SQL Server che contengono caratteri non supportati nei percorsi di PowerShell. Per altre informazioni, vedere Identificatori di SQL Server in PowerShell.
Usare il cmdlet Convert-UrnToPath per convertire un nome di risorsa univoco per un oggetto motore di database in un percorso per il provider powerShell di SQL Server. Per altre informazioni, vedere Convert-UrnToPath.
Espressioni di query e nomi di risorse uniformi
Le espressioni di query sono stringhe che usano una sintassi simile a XPath per specificare un set di criteri che enumera uno o più oggetti in una gerarchia del modello a oggetti. Un URN (Uniform Resource Name) è un tipo specifico di stringa di espressione di query che identifica in modo univoco un singolo oggetto. Per altre informazioni, vedere Espressioni di query e Nomi di risorse uniformi.
Agente di SQL Server
Non sono state apportate modifiche al modulo usato da SQL Server Agent. Di conseguenza, i processi di SQL Server Agent, che hanno passaggi di processo di tipo PowerShell usano il modulo SQLPS. Per altre informazioni, vedere Come eseguire PowerShell con SQL Server Agent. Tuttavia, a partire da SQL Server 2019, è possibile disabilitare SQLPS. A tale scopo, nella prima riga di un passaggio di processo del tipo PowerShell è possibile aggiungere #NOSQLPS
, che impedisce a SQL Agent di caricare automaticamente il modulo SQLPS. Quando si esegue questa operazione, il processo di SQL Agent esegue la versione di PowerShell installata nel computer e quindi è possibile usare qualsiasi altro modulo di PowerShell desiderato.
Risolvere i problemi relativi a SQLPS
Se vengono visualizzati i passaggi del processo dell'agente (sottosistema PowerShell) con l'errore seguente, questa sezione potrebbe essere utile per la risoluzione del problema.
Un passaggio del processo ha ricevuto un errore alla riga 1 in uno script di PowerShell. La riga corrispondente è 'import-module SQLPS'. Correggere lo script e riprogrammare il processo. Le informazioni sull'errore restituite da PowerShell sono: 'Il modulo specificato 'SQLPS' non è stato caricato perché non è stato trovato alcun file di modulo valido in alcuna directory del modulo.
Il modulo SQLPS deve essere disponibile nella variabile di ambiente PSModulePath. La disinstallazione di SSMS 16.x potrebbe rimuovere SQLPS da PSModulePath. Per controllare i valori correnti archiviati in PSModulePath, eseguire il comando PowerShell seguente:
$env:PSModulePath -split ";"
Se il percorso è impostato, verrà visualizzata una voce simile a C:\Program Files (x86)\Microsoft SQL Server\130\Tools\PowerShell\Modules
. Se il percorso non è impostato, individuare la cartella SQLPS nel server e aggiungerla al valore della variabile di ambiente tramite PowerShell o in Proprietà di sistema Variabili>di ambiente avanzate>.
Modulo SQLServer con SQL Agent
Se si vuole usare il modulo SqlServer nel passaggio processo di SQL Agent, è possibile inserire questo codice nelle prime due righe dello script.
#NOSQLPS
Import-Module -Name SqlServer