SQL Server PowerShellSQL Server PowerShell

Gilt für: JaSQL Server JaAzure SQL-Datenbank JaAzure Synapse Analytics (SQL DW) JaParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Installieren von SQL Server PowerShellInstall SQL Server PowerShell

Hinweis

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 in 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, as well as 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 diese das SQLPS-Modul importieren.Update your PowerShell scripts if they 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. Aus diesem Grund müssen Sie die Variable „$env:PSModulePath“ nicht aktualisieren.Therefore, you do not 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 wurden keine Änderungen an dem von SQL Server-Agent verwendeten Modul vorgenommen.There is no change to the module used by SQL Server Agent. Aus diesem Grund wird bei den Auftragsschritten des PowerShell-Typs das SQLPS-Modul verwendet.Therefore, job steps of the type PowerShell 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.

SQL Server PowerShell-KomponentenSQL Server PowerShell Components

Mit dem SqlServer-Modul werden zwei Windows PowerShell-Snap-Ins geladen:The SqlServer module loads two Windows PowerShell snap-ins:

  • Ein SQL ServerSQL Server -Anbieter, der einen einfachen Navigationsmechanismus aktiviert, der Dateisystempfaden ähnelt.A SQL ServerSQL Server provider, which enables a simple navigation mechanism similar to file system paths. Sie können Dateisystempfaden ähnelnde Pfade erstellen, in denen das Laufwerk einem SQL ServerSQL 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 ServerSQL 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 unterstützen Aktionen wie das Ausführen eines sqlcmd-Skripts, das Transact-SQLTransact-SQL- oder XQuery-Anweisungen enthält.A set of cmdlets that support actions such as running a sqlcmd script containing Transact-SQLTransact-SQL or XQuery statements.

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.

Mit dem Convert-UrnToPath -Cmdlet können Sie einen eindeutigen Ressourcennamen (Unique Resource Name, URN) für ein Datenbank-EngineDatabase Engine -Objekt einen Pfad für den SQL Server PowerShell-Anbieter konvertieren.Use the Convert-UrnToPath cmdlet to convert a Unique Resource Name for a Datenbank-EngineDatabase 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 enumerate 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.

Cmdlet-ReferenzCmdlet reference