SQL Server PowerShellSQL Server PowerShell

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database JaVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceYesVerwaltete Azure SQL-InstanzAzure SQL Managed Instance JaAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics JaParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data WarehouseAnwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database JaVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceYesVerwaltete Azure SQL-InstanzAzure SQL Managed Instance JaAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics JaParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

Installieren von SQL Server PowerShellInstall SQL Server PowerShell

Es gibt zwei SQL Server PowerShell-Module: SqlServer und SQLPS.There are two SQL Server PowerShell modules; SqlServer and SQLPS. Das SQLPS-Modul ist zwar in der SQL Server-Installation (für die Abwärtskompatibilität) enthalten, wird jedoch nicht mehr aktualisiert.The SQLPS module is included with the SQL Server installation (for backwards compatibility), but is no longer being updated. Das SqlServer-Modul ist das aktuellste PowerShell-Modul.The most up-to-date PowerShell module is the SqlServer module. Das SqlServer-Modul enthält aktualisierte Versionen der Cmdlets in SQLPS sowie neue Cmdlets zur Unterstützung der neuesten SQL-Funktionen.The SqlServer module contains updated versions of the cmdlets in SQLPS, and also includes new cmdlets to support the latest SQL features.

Vorherige Versionen des SqlServer-Moduls waren im SQL Server Management Studio (SSMS) enthalten, allerdings nur in den Versionen 16.x.Previous versions of the SqlServer module were included with SQL Server Management Studio (SSMS), but only with the 16.x versions of SSMS.

Das SqlServer-Modul muss über den PowerShell-Katalog installiert werden, damit PowerShell mit SSMS 17.0 und höher verwendet werden kann.To use PowerShell with SSMS 17.0 and later, the SqlServer module must be installed from the PowerShell Gallery.

Informationen zur Installation des SqlServer-Moduls finden Sie unter Installieren von SQL Server PowerShell.To install the SqlServer module, see Install SQL Server PowerShell.

Warum wurde das Modul von „SQLPS“ in „SqlServer“ geändert?Why did the module change from SQLPS to SqlServer?

Zur Freigabe von SQL PowerShell-Updates mussten die Identitäten des SQL PowerShell-Moduls und des Wrappers SQLPS.exe geändert werden.To ship SQL PowerShell updates, we had to change the identity of the SQL PowerShell module, and the wrapper known as SQLPS.exe. Aufgrund dieser Änderung gibt es jetzt zwei SQL PowerShell-Module: das SqlServer-Modul und das SQLPS-Modul.Because of this change, there are now two SQL PowerShell modules, the SqlServer module, and the SQLPS module.

Aktualisieren Sie Ihre PowerShell-Skripts, wenn Sie das SQLPS-Modul importieren.Update your PowerShell scripts if you import the SQLPS module.

Wenn Sie über PowerShell-Skripts verfügen, die Import-Module -Name SQLPS ausführen, und Sie die Vorteile der neuen Anbieterfunktionen und Cmdlets nutzen möchten, müssen Sie diese in Import-Module -Name SqlServer ändern.If you have any PowerShell scripts that run Import-Module -Name SQLPS, and you want to take advantage of the new provider functionality and new cmdlets, you must change them to Import-Module -Name SqlServer. Das neue Modul wird im Ordner %ProgramFiles%\WindowsPowerShell\Modules\SqlServer installiert.The new module is installed to %ProgramFiles%\WindowsPowerShell\Modules\SqlServer folder. Daher müssen Sie die Variable „$env:PSModulePath“ nicht aktualisieren.As such, you don't have to update the $env:PSModulePath variable. Wenn Sie über Skripts verfügen, die eine Community-Version oder eine Version eines Drittanbieters eines Moduls mit dem Namen SqlServer verwenden, verwenden Sie den Parameter „Prefix“, um Konflikte mit den Namen zu vermeiden.If you have scripts that use a third-party or community version of a module named SqlServer, use the Prefix parameter to avoid name collisions.

Es wird empfohlen, das Skript mit Import-Module SQLServer zu starten, um parallele Probleme zu vermeiden, wenn das SQLPS-Modul auf demselben Computer installiert ist.It is recommended to start your script with Import-Module SQLServer to avoid side-by-side issues if the SQLPS module is installed on the same machine.

Dieser Abschnitt gilt für Skripts, die von PowerShell und nicht vom SQL-Agent ausgeführt werden.This section applies to scripts executed from PowerShell and not the SQL Agent. Das neue Modul kann mit SQL-Agent-Auftragsschritten mithilfe von #NOSQLPS verwendet werden.The new module can be used with SQL Agent job steps using #NOSQLPS.

SQL Server PowerShell-KomponentenSQL Server PowerShell Components

Das SqlServer-Modul umfasst Folgendes:The SqlServer module comes with:

  • PowerShell-Anbieter, was einen einfachen Navigationsmechanismus wie bei Dateisystempfaden ermöglicht.PowerShell Providers, which enables a simple navigation mechanism similar to file system paths. Sie können Dateisystempfaden ähnelnde Pfade erstellen, in denen das Laufwerk einem SQL Server-Management Object-Modell zugeordnet ist und deren Knoten auf Objektmodellklassen basieren.You can build paths similar to file system paths, where the drive is associated with a SQL Server management object model, and the nodes are based on the object model classes. Sie können dann vertraute Befehle wie cd und dir verwenden, um auf den Pfaden zu navigieren, auf ähnliche Weise, wie Sie in einem Eingabeaufforderungsfenster in Ordnern navigieren.You can then use familiar commands such as cd and dir to navigate the paths similar to the way you navigate folders in a command prompt window. Mit anderen Befehlen, wie ren oder del, können Sie Aktionen für die Knoten im Pfad ausführen.You can use other commands, such as ren or del, to perform actions on the nodes in the path.

  • mehrere Cmdlets, die Aktionen wie das Ausführen eines sqlcmd-Skripts unterstützen, das Transact-SQL- oder XQuery-Anweisungen enthältA set of cmdlets that support actions such as running a sqlcmd script containing Transact-SQL or XQuery statements.

  • AS-Anbieter und Cmdlets, die zuvor separat installiert wurdenThe AS provider and cmdlets, which before they were installed separately.

SQL Server-VersionenSQL Server versions

SQL PowerShell-Cmdlets können verwendet werden, um Instanzen von Azure SQL-Datenbank und Azure SQL Data Warehouse sowie alle unterstützten SQL Server-Produkte zu verwalten.SQL PowerShell cmdlets can be used to manage instances of Azure SQL Database, Azure SQL Data Warehouse, and all supported SQL Server products.

SQL Server-Bezeichner mit Zeichen, die in PowerShell-Pfaden nicht unterstützt werden.SQL Server identifiers that contain characters not supported in PowerShell paths

Das Encode-Sqlname -Cmdlet und das Decode-Sqlname -Cmdlet helfen Ihnen, SQL Server-Bezeichner mit Zeichen anzugeben, die in PowerShell-Pfaden nicht unterstützt werden.The Encode-Sqlname and Decode-Sqlname cmdlets help you specify SQL Server identifiers that contain characters not supported in PowerShell paths. Weitere Informationen finden Sie unter SQL Server Identifiers in PowerShell.For more information, see SQL Server Identifiers in PowerShell.

Verwenden Sie das Convert-UrnToPath-Cmdlet, um einen eindeutigen Ressourcennamen (Unique Resource Name, URN) für ein Datenbank-Engine-Objekt in einen Pfad für den SQL Server PowerShell-Anbieter zu konvertieren.Use the Convert-UrnToPath cmdlet to convert a Unique Resource Name for a Database Engine object to a path for the SQL Server PowerShell provider. Weitere Informationen finden Sie unter Convert URNs to SQL Server Provider Paths.For more information, see Convert URNs to SQL Server Provider Paths.

Abfrageausdrücke und eindeutige RessourcennamenQuery Expressions and Unique Resource Names

Bei Abfrageausdrücken handelt es sich um Zeichenfolgen, die eine ähnliche Syntax wie XPath nutzen, um eine Gruppe von Kriterien angeben, mit der ein oder mehrere Objekte in einer Objektmodellhierarchie aufgezählt werden.Query expressions are strings that use syntax similar to XPath to specify a set of criteria that enumerates one or more objects in an object model hierarchy. Ein eindeutiger Ressourcenname (Unique Resource Name, URN) ist ein spezieller Typ einer Abfrageausdrucks-Zeichenfolge, der ein einzelnes Objekt eindeutig kennzeichnet.A Unique Resource Name (URN) is a specific type of query expression string that uniquely identifies a single object. Weitere Informationen finden Sie unter Query Expressions and Uniform Resource Names.For more information, see Query Expressions and Uniform Resource Names.

SQL Server-AgentSQL Server Agent

Es wurden keine Änderungen an dem von SQL Server-Agent verwendeten Modul vorgenommen.There's no change to the module used by SQL Server Agent. Daher verwenden SQL Server-Agent-Aufträge, die über PowerShell-Auftragsschritte verfügen, das SQLPS-Modul.As such, SQL Server Agent jobs, which have PowerShell type job steps use the SQLPS module. Weitere Informationen finden Sie im Artikel zum Ausführen von PowerShell mit dem SQL Server-Agent.For more information, see How to run PowerShell with SQL Server Agent. Ab SQL Server 2019 können Sie SQLPS jedoch deaktivieren.However, starting with SQL Server 2019, you can disable SQLPS. Fügen Sie hierzu in der ersten Zeile eines Auftragsschritts des PowerShell-Moduls #NOSQLPS hinzu, wodurch der SQL-Agent aufhört, das SQLPS-Modul automatisch zu laden.To do so, on the first line of a job step of the type PowerShell you can add #NOSQLPS, which stops the SQL Agent from auto-loading the SQLPS module. Wenn Sie dies tun, führt der SQL-Agent-Auftrag die auf dem Computer installierte PowerShell-Version aus. Sie können dann auch ein beliebiges anderes PowerShell-Modul verwenden.When you do this, your SQL Agent Job runs the version of PowerShell installed on the machine, and then you can use any other PowerShell module you like.

Wenn Sie das SqlServer-Modul in Ihrem SQL-Agent-Auftragsschritt verwenden möchten, können Sie diesen Code in den ersten beiden Skriptzeilen platzieren.If you want to use the SqlServer module in your SQL Agent Job step, you can place this code on the first two lines of your script.

#NOSQLPS
Import-Module -Name SqlServer

Cmdlet-ReferenzCmdlet reference

Nächste SchritteNext steps

Herunterladen des SQL Server PowerShell-ModulsDownload SQL Server PowerShell Module