Powershell i SQL 11 – Moduł SQLPS

3-Lis-2016

Moduł SQLPS to dedykowany moduł pozwalający na korzystanie z SQL z poziomu PowerShell. Składa się on z SQL Server Provider, który dalej udostępnia wirtualny napęd SQLPS: oraz z dedykowanych cmdletów.

Aby rozpocząć korzystanie z SQLPS skorzystaj z polecenia:

Import-Module SQLPS

Podczas ładowaniu modułu możesz zauważyć ostrzeżenie. Nie musisz się nim przejmować, bo komunikat mówi, że nazwy poleceń odbiegają od standardowych (Encode-SqlName i Decode-SQLName), co może powodować trudniejsze odnajdywanie tych poleceń przez użytkownika.

SQLPS zostanie automatycznie załadowany, jeżeli wywołasz go z menu kontekstowego SQL Server Manager. Jednak w tym przypadku ładowany jest bardzo minimalistyczny powershell z modułem SQLPS i wiele funkcjonalności Powershell jest tam niedostępne. Zdecydowanie odradzam używanie tego narzędzia (SQLPS.EXE). Nawet Microsoft zdecydował się już dalej nie rozwijać tego narzędzia. Dalej przedstawiam więc tylko informacje o pełnym środowisku powershell, w którym został załadowany moduł SQLPS.

Polecenie:

Get-Command  -Module  SQLPS

wyświetli wszystkie polecenia dostępne w tym module:

PS C:\Windows\system32> Import-Module sqlps
PS C:\Windows\system32> Get-Command -Module SQLPS
CommandType     Name                                     Version    Source
-----------     ----                                     -------    ------
Alias           Decode-SqlName                           1.0        sqlps
Alias           Encode-SqlName                           1.0        sqlps
Function        SQLSERVER:                               1.0        sqlps
Cmdlet          Add-SqlAvailabilityDatabase              1.0        sqlps
Cmdlet          Add-SqlAvailabilityGroupListenerStaticIp 1.0        sqlps
Cmdlet          Add-SqlFirewallRule                      1.0        sqlps
Cmdlet          Backup-SqlDatabase                       1.0        sqlps
Cmdlet          ConvertFrom-EncodedSqlName               1.0        sqlps
Cmdlet          ConvertTo-EncodedSqlName                 1.0        sqlps
Cmdlet          Convert-UrnToPath                        1.0        sqlps
Cmdlet          Disable-SqlAlwaysOn                      1.0        sqlps
Cmdlet          Enable-SqlAlwaysOn                       1.0        sqlps
Cmdlet          Get-SqlCredential                        1.0        sqlps
Cmdlet          Get-SqlDatabase                          1.0        sqlps
Cmdlet          Get-SqlInstance                          1.0        sqlps
Cmdlet          Get-SqlSmartAdmin                        1.0        sqlps
Cmdlet          Invoke-PolicyEvaluation                  1.0        sqlps
Cmdlet          Invoke-Sqlcmd                            1.0        sqlps
Cmdlet          Join-SqlAvailabilityGroup                1.0        sqlps
Cmdlet          New-SqlAvailabilityGroup                 1.0        sqlps
Cmdlet          New-SqlAvailabilityGroupListener         1.0        sqlps
Cmdlet          New-SqlAvailabilityReplica               1.0        sqlps
Cmdlet          New-SqlBackupEncryptionOption            1.0        sqlps
Cmdlet          New-SqlCredential                        1.0        sqlps
Cmdlet          New-SqlHADREndpoint                      1.0        sqlps
Cmdlet          Remove-SqlAvailabilityDatabase           1.0        sqlps
Cmdlet          Remove-SqlAvailabilityGroup              1.0        sqlps
Cmdlet          Remove-SqlAvailabilityReplica            1.0        sqlps
Cmdlet          Remove-SqlCredential                     1.0        sqlps
Cmdlet          Remove-SqlFirewallRule                   1.0        sqlps
Cmdlet          Restore-SqlDatabase                      1.0        sqlps
Cmdlet          Resume-SqlAvailabilityDatabase           1.0        sqlps
Cmdlet          Save-SqlMigrationReport                  1.0        sqlps
Cmdlet          Set-SqlAuthenticationMode                1.0        sqlps
Cmdlet          Set-SqlAvailabilityGroup                 1.0        sqlps
Cmdlet          Set-SqlAvailabilityGroupListener         1.0        sqlps
Cmdlet          Set-SqlAvailabilityReplica               1.0        sqlps
Cmdlet          Set-SqlCredential                        1.0        sqlps
Cmdlet          Set-SqlHADREndpoint                      1.0        sqlps
Cmdlet          Set-SqlNetworkConfiguration              1.0        sqlps
Cmdlet          Set-SqlSmartAdmin                        1.0        sqlps
Cmdlet          Start-SqlInstance                        1.0        sqlps
Cmdlet          Stop-SqlInstance                         1.0        sqlps
Cmdlet          Suspend-SqlAvailabilityDatabase          1.0        sqlps
Cmdlet          Switch-SqlAvailabilityGroup              1.0        sqlps
Cmdlet          Test-SqlAvailabilityGroup                1.0        sqlps
Cmdlet          Test-SqlAvailabilityReplica              1.0        sqlps
Cmdlet          Test-SqlDatabaseReplicaState             1.0        sqlps
Cmdlet          Test-SqlSmartAdmin                       1.0        sqlps

Niektóre z tych poleceń są bardzo specjalistyczne i służą do wykonania jednej konkretnej czynności administracyjnej, jak np. seria poleceń pracująca z Aviability groups. Inne jednak są dość ogólne i pozwalają na wykonywanie po prostu poleceń SQL…, więc można z nimi zrobić wszystko!

provider

Jeśli nie masz pewności czy i gdzie moduł jest załadowany, to skorzystaj z polecenia:

PS C:\Windows\system32> Get-Module SQLPS -List
    Directory: C:\Program Files (x86)\Microsoft SQL Server\130\Tools\PowerShell\Modules
ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   1.0        SQLPS                               {Backup-SqlDatabase, Save-SqlMigrationReport,

Już w pierwszej linii powinna się znaleźć informacja o lokalizacji modułu.

Po załadowaniu modułu można zmienić napęd na sqlserver: i zacząć korzystać ze znajdujących się tu obiektów:

sql_drive

No wersji SQL 2012 aby zainstalować moduł SQLPS należało zainstalować jakikolwiek element z pakietu instalacyjnego SQL, np. SQL Tools. Od wersji 2014, SQL Management Studio jest wydzielonym elementem od SQL Server i już instalując zestaw SSMS, moduł będzie obecny w systemie.

 

Dodaj komentarz:

Autor: Rafał Kraik