Udostępnij za pośrednictwem


Uruchomiony program SQL Server PowerShell

SQL ServerInstaluje Windows PowerShell i zestaw SQL Server przystawek, które narazić SQL Server funkcje systemu Windows PowerShell.Można następnie kodu skryptów środowiska Windows PowerShell, które działają z SQL Server obiektów.Skrypty można uruchamiać w środowisku Windows PowerShell w SQL Server Management Studioi jako SQL Server zadania agenta.

Instalowanie obsługi programu SQL Server PowerShell

Zainstaluj oprogramowanie wymagane do uruchomienia przy użyciu skryptów systemu Windows PowerShell SQL Server Instalatora.Począwszy od SQL Server 2008, Instalator instaluje następujące składniki Windows PowerShell po wybraniu oprogramowanie klient lub węzły usługi bazy danych:

  • Windows PowerShell 1.0, jeśli Windows PowerShell nie jest już obecny na komputerze.

  • SQL Server Ubezp. przystawkiPrzystawki są pliki dll, które implementują obsługę środowiska Windows PowerShell dwa typy SQL Server:

    • Zestaw SQL Server apletów.Aplety poleceń są polecenia, które implementują określonej akcja.Na przykład Polecenie Wywołaj-Sqlcmd działa Transact-SQL lub XQuery skryptu, który może również zostać uruchomione przy użyciu polecenie sqlcmd , narzędzie i Invoke policyevaluation raporty czy SQL Server obiekty spełniają zasady zarządzanie oparte na zasadach.

    • A SQL Server dostawca.Dostawca umożliwia przechodzenie między hierarchię SQL Server obiektów za pomocą ścieżka podobnej ścieżką systemu plikówKażdy obiekt jest skojarzony z klasy z SQL Server modeli obiektów zarządzania.Metody i właściwości klasy można używać do wykonywania pracy na obiekty.Na przykład jeśli cd do obiektu bazy danych w ścieżka, metod i właściwości klasy Microsoft.SqlServer.Managment.SMO.Database można używać do zarządzania bazy danych.

  • Sqlps narzędzie używane do uruchamiania sesji środowiska Windows PowerShell, które zawierają SQL Server Ubezp. przystawki

Począwszy od SQL Server 2008, SQL Server Management Studio obsługuje rozpoczęcia sesji środowiska Windows PowerShell z drzewa Object Explorer. Również począwszy od SQL Server 2008, SQL Server Agent obsługuje czynności zadanie Windows PowerShell.

W przypadku odinstalowania środowiska Windows PowerShell po zakończeniu instalacji, SQL Server Funkcje środowiska Windows PowerShell będzie funkcja.Windows PowerShell można odinstalować systemu Windows i odinstalowywanie środowiska Windows PowerShell mogą być wymagane przez niektóre uaktualnienia systemu operacyjnego Windows.Jeśli został odinstalowany Windows PowerShell i chcesz użyć SQL Server funkcji, należy wykonać jedną z następujących czynności:

  • Ręcznie pobrać i zainstalować ponownie program Windows PowerShell 1.0 z Microsoft Centrum pobierania.Download instructions are on the Windows Server 2003 Web site.

  • Jeśli używasz Windows Server 2008, istnieje w systemie operacyjnym Windows PowerShell 1.0, ale jest wyłączona domyślnieMożna ponownie włączyć Windows PowerShell z Windows Server 2008.

Obsługiwane wersje programu SQL Server

Należy użyć SQL Server 2008 składniki klient do uruchomienia systemu Windows PowerShell.Windows PowerShell można połączyć się z wystąpienia SQL Server 2000 lub nowszej.Najwcześniejsza wersja SQL Server 2005 , których można używać jest dodatek SP2.Najwcześniejsza wersja SQL Server 2000 , których można używać jest SP4.Gdy program Windows PowerShell połączy się z SQL Server 2005 i SQL Server 2000, jest ograniczona do funkcji dostępnych w tych wersjach SQL Server.

Przy użyciu narzędzia sqlps

sqlps to narzędzie, które tworzy środowisko Windows PowerShell, a następnie ładuje i rejestry SQL Server Ubezp. przystawkiMożna użyć sqlps do:

  • Interaktywne uruchamianie poleceń środowiska Windows PowerShell.

  • Pliki skryptów uruchamiania środowiska Windows PowerShell.

  • Uruchom SQL Server apletów.

  • Użyj SQL Server dostawca ścieżki do nawigowania w hierarchii SQL Server obiektów.

Domyślnie sqlps działa z zasad wykonywania wykonywanie skryptów zestaw do ograniczeniami, który uniemożliwia uruchamianie wszystkich wykonywanie skryptów Windows PowerShell.Można użyć Set executionpolicy polecenia, aby umożliwić wykonywanie skryptów podpisane lub wszystkie skrypty.Tylko uruchamiać skrypty z zaufanych źródeł i zabezpieczyć wszystkie dane wejściowe i wyjściowe plików za pomocą odpowiednich uprawnień NTFS.Aby uzyskać więcej informacji dotyczących włączania skryptów Windows PowerShell, zobacz z systemem Windows PowerShell skrypty.

Aby uzyskać więcej informacji, zobacz Narzędzie sqlps.

W programie SQL Server Management Studio przy użyciu środowiska Windows PowerShell

You can start Windows PowerShell sessions in SQL Server Management Studio by right-clicking objects in Object Explorer and selecting Start PowerShell.SQL Server Management Studio then starts a Windows PowerShell session in which the SQL Server PowerShell snap-ins have been loaded and registered.Ścieżka dla sesja jest wstępnie do lokalizacji obiektu kliknięto prawym przyciskiem myszy w Eksploratorze obiektów.Na przykład, jeśli prawym przyciskiem myszy AdventureWorks2008R2 bazy danych w obiekcie Object Explorer i wybierz Start powershell, ścieżka Windows PowerShell jest zestaw do następującego:

SQLSERVER:\SQL\MyComputer\MyInstance\Databases\AdventureWorks2008R2>

Przy użyciu środowiska Windows PowerShell w SQL Server czynności zadania agenta

Istnieje kilka rodzajów SQL Server czynności zadanie agenta.Każdy typ jest skojarzony z podsystem, który implementuje określonego środowiska, takich jak agent replikacja lub środowisku wiersz polecenia. SQL Server Podsystemu Agent dla Windows PowerShell obsługuje zadanie kroki, wykonać skryptów systemu Windows PowerShell.Kod skryptów Windows PowerShell, a następnie użyj SQL Server agenta należą skrypty w zadaniach, które działają w zaplanowanym czasie lub w odpowiedzi na SQL Server zdarzenia. SQL Server Podsystemu agenta ładuje i rejestruje SQL Server przystawek, dzięki czemu można uruchamiać skrypty Windows PowerShell.

Aby uzyskać więcej informacji, zobacz SQL ServerAgent podsystemów.

PrzestrogaPrzestroga

Każdy SQL Server uruchamia krok zadanie agenta sqlps proces, który zajmuje około 20 MB pamięci.Uruchamianie dużej liczby równoczesnych czynności zadanie Windows PowerShell może pogorszyć wydajność.

Dodawanie przystawek programu SQL Server do środowiska Windows PowerShell

sqlps Jest narzędzie mini-shell Windows PowerShell.Powłok mini ma pewne ograniczenia.Na przykład są one kodowane do ładowania w jeden lub więcej przystawki Windows PowerShell, ale użytkownicy i skryptów nie można dodać inne przystawki.Jeśli wymagane funkcje nie obsługiwane przez mini-shell, takie jak praca z obu SQL Server przystawki MMC i przystawek z innego produktu, można dodać SQL Server przystawek bezpośrednio do środowiska Windows PowerShell.

Wklej następujący kod do Notatnika i zapisz go jako plik skryptu ps1 na komputerze, takich jak C:\MyFolder\InitializeSQLProvider.ps1:

# Add the SQL Server Provider.

$ErrorActionPreference = "Stop"

$sqlpsreg="HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.SqlServer.Management.PowerShell.sqlps"

if (Get-ChildItem $sqlpsreg -ErrorAction "SilentlyContinue")
{
    throw "SQL Server Provider for Windows PowerShell is not installed."
}
else
{
    $item = Get-ItemProperty $sqlpsreg
    $sqlpsPath = [System.IO.Path]::GetDirectoryName($item.Path)
}


# Set mandatory variables for the SQL Server provider
Set-Variable -scope Global -name SqlServerMaximumChildItems -Value 0
Set-Variable -scope Global -name SqlServerConnectionTimeout -Value 30
Set-Variable -scope Global -name SqlServerIncludeSystemObjects -Value $false
Set-Variable -scope Global -name SqlServerMaximumTabCompletion -Value 1000

# Load the snapins, type data, format data
Push-Location
cd $sqlpsPath
Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
Update-TypeData -PrependPath SQLProvider.Types.ps1xml 
update-FormatData -prependpath SQLProvider.Format.ps1xml 
Pop-Location

Następnie można użyć skryptu uruchamiania środowiska Windows PowerShell, w którym SQL Server przystawki są ładowane za pomocą tego polecenia:

PowerShell -NoExit -Command "C:\MyFolder\InitializeSQLProvider.ps1"

Polecenia mogą być uruchamiane w wiersz polecenia z skrótu na pulpicie lub z uruchomić okno dialogowe w Start menu.Domyślnie program Windows PowerShell jest uruchamiany ograniczeniami tryb, który nie obsługuje uruchamianie skryptów.Aby uzyskać więcej informacji dotyczących włączania skryptów Windows PowerShell, zobacz z systemem Windows PowerShell skrypty.

Ładowanie programu SQL Server Management Objects w Windows PowerShell

SQL Server dostawca automatycznie ładuje zestawów SMO (SQL Server Management obiektu).Istnieją dwa przypadki, gdzie należy załadować zestawów SMO bezpośrednio:

  • Jeżeli skrypt odwołuje się do obiektu SMO przed pierwszym poleceniem odwołujący się do dostawca lub apletów z SQL Server Ubezp. przystawki

  • Chcesz kod SMO portu innego języka, takich jak C# lub VB.NET, które nie korzystają z dostawca lub apletów.

Poniższy kod ładuje zestawów SMO:

# Loads the SQL Server Management Objects (SMO)

$ErrorActionPreference = "Stop"

$sqlpsreg="HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.SqlServer.Management.PowerShell.sqlps"

if (Get-ChildItem $sqlpsreg -ErrorAction "SilentlyContinue")
{
    throw "SQL Server Provider for Windows PowerShell is not installed."
}
else
{
    $item = Get-ItemProperty $sqlpsreg
    $sqlpsPath = [System.IO.Path]::GetDirectoryName($item.Path)
}


$assemblylist = 
"Microsoft.SqlServer.Management.Common",
"Microsoft.SqlServer.Smo",
"Microsoft.SqlServer.Dmf ",
"Microsoft.SqlServer.Instapi ",
"Microsoft.SqlServer.SqlWmiManagement ",
"Microsoft.SqlServer.ConnectionInfo ",
"Microsoft.SqlServer.SmoExtended ",
"Microsoft.SqlServer.SqlTDiagM ",
"Microsoft.SqlServer.SString ",
"Microsoft.SqlServer.Management.RegisteredServers ",
"Microsoft.SqlServer.Management.Sdk.Sfc ",
"Microsoft.SqlServer.SqlEnum ",
"Microsoft.SqlServer.RegSvrEnum ",
"Microsoft.SqlServer.WmiEnum ",
"Microsoft.SqlServer.ServiceBrokerEnum ",
"Microsoft.SqlServer.ConnectionInfoExtended ",
"Microsoft.SqlServer.Management.Collector ",
"Microsoft.SqlServer.Management.CollectorEnum",
"Microsoft.SqlServer.Management.Dac",
"Microsoft.SqlServer.Management.DacEnum",
"Microsoft.SqlServer.Management.Utility"


foreach ($asm in $assemblylist)
{
    $asm = [Reflection.Assembly]::LoadWithPartialName($asm)
}

Push-Location
cd $sqlpsPath
update-FormatData -prependpath SQLProvider.Format.ps1xml 
Pop-Location