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!
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:
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.