Navigieren in SQL Server PowerShell-Pfaden

Der Database Engine (Datenbankmodul)-PowerShell-Anbieter macht den Satz von Objekten in einer Instanz von SQL Server in einer Struktur verfügbar, die einem Dateipfad ähnelt. Sie können im Anbieterpfad mithilfe von Windows PowerShell-Cmdlets navigieren und benutzerdefinierte Laufwerke erstellen, um den Pfad zu kürzen, den Sie eingeben müssen.

Vorbereitungen

Windows PowerShell implementiert Cmdlets, um in der Pfadstruktur zu navigieren, die die Hierarchie von Objekten darstellt, die von einem PowerShell-Anbieter unterstützt werden. Wenn Sie zu einem Knoten im Pfad navigiert haben, können Sie andere Cmdlets verwenden, um grundlegende Vorgänge für das aktuelle Objekt auszuführen. Da die Cmdlets häufig verwendet werden, haben sie kurze, kanonische Aliase. Es gibt auch einen Satz von Aliasen, der die Cmdlets ähnlichen Eingabeaufforderungsbefehlen zuordnet, und einen weiteren Satz für UNIX-Shell-Befehle.

Der SQL Server-Anbieter implementiert eine Teilmenge der Anbieter-Cmdlets, wie in der folgenden Tabelle aufgeführt.

Cmdlet

Kanonischer Alias

Cmd-Alias

UNIX-Shell-Alias

Beschreibung

Get-Location

gl

pwd

pwd

Ruft den aktuellen Knoten ab.

Set-Location

sl

cd, chdir

cd, chdir

Ändert den aktuellen Knoten.

Get-ChildItem

gci

dir

ls

Listet die am aktuellen Knoten gespeicherten Objekte auf.

Get-Item

gi

Gibt die Eigenschaften des aktuellen Elements zurück.

Rename-Item

rni

rn

ren

Benennt ein Objekt um.

Remove-Item

ri

del, rd

rm, rmdir

Entfernt ein Objekt.

Wichtiger HinweisWichtig

Einige SQL Server-Bezeichner (Objektnamen) enthalten Zeichen, die Windows PowerShell in Pfadnamen nicht unterstützt. Weitere Informationen zum Verwenden von Namen, die diese Zeichen enthalten, finden Sie unter SQL Server-Bezeichnern in PowerShell.

Von Get-ChildItem zurückgegebene SQL Server-Informationen

Die von Get-ChildItem (oder den zugehörigen Aliasen dir und ls) zurückgegebenen Informationen sind von Ihrer Position in einem "SQLSERVER:"-Pfad abhängig.

Pfadposition

Get-ChildItem-Ergebnisse

SQLSERVER:\SQL

Gibt den Namen des lokalen Computers zurück. Wenn Sie die Verbindung mit Instanzen von Database Engine (Datenbankmodul) auf anderen Computern mithilfe von SMO oder WMI hergestellt haben, werden diese Computer ebenfalls aufgelistet.

SQLSERVER:\SQL\ComputerName

Die Liste der Instanzen von Database Engine (Datenbankmodul) auf dem Computer.

SQLSERVER:\SQL\ComputerName\InstanceName

Die Liste von Objekttypen der höchsten Ebene in der Instanz, wie Endpunkte, Zertifikate und Datenbanken.

Objektklassenknoten, z. B. Datenbanken

Die Liste der Objekte dieses Typs, z. B. die Liste von Datenbanken: master, model, AdventureWorks20008R2.

Objektnamenknoten, z. B. AdventureWorks2012

Die Liste von im Objekt enthaltenen Objekttypen. Zum Beispiel würden in einer Datenbank Objekttypen wie Tabellen und Sichten aufgeführt werden.

Standardmäßig listet Get-ChildItem keine Systemobjekte auf. Verwenden Sie den Parameter Force, um Systemobjekte anzuzeigen, wie z. B. die Objekte im sys-Schema.

Benutzerdefinierte Laufwerke

Mit Windows PowerShell können Benutzer virtuelle Laufwerke definieren, die als PowerShell-Laufwerke bezeichnet werden. Diese werden über die Startknoten einer Pfadanweisung zugeordnet. Sie werden in der Regel verwendet, um Pfade, die häufig eingegeben werden, zu kürzen. SQLSERVER: Pfade können lang werden, somit viel Platz im Windows PowerShell-Fenster einnehmen und umfangreiche Eingaben erfordern. Wenn Sie vorhaben, viel mit einem bestimmten Pfadknoten zu arbeiten, können Sie ein benutzerdefiniertes Windows PowerShell-Laufwerk definieren, das dem Knoten zugeordnet ist.

Verwenden von PowerShell-Cmdlet-Aliasen

Verwenden eines Cmdlet-Alias

  • Statt einen vollständigen Cmdlet-Namen einzugeben, geben Sie einen kürzeren Alias ein, oder geben Sie einen ein, der einem bekannten, an der Eingabeaufforderung einzugebenden Befehl entspricht.

Beispiel für einen Alias (PowerShell)

Sie können beispielsweise einen der folgenden Sätze von Cmdlets oder Aliasen verwenden, um eine Auflistung der Ihnen zur Verfügung stehenden SQL Server-Instanzen abzurufen, indem Sie zum "SQLSERVER:\SQL"-Ordner navigieren und die Liste der untergeordneten Elemente des Ordners anfordern:

## Shows using the full cmdet name.
Set-Location SQLSERVER:\SQL
Get-ChildItem

## Shows using canonical aliases.
sl SQLSERVER:\SQL
gci

## Shows using command prompt aliases.
cd SQLSERVER:\SQL
dir

## Shows using Unix shell aliases.
cd SQLSERVER:\SQL
ls

Verwenden von Get-ChildItem

Zurückgeben von Informationen mit Get-ChildItem

  1. Navigieren Sie zu dem Knoten, für den Sie eine Liste von untergeordneten Elementen abrufen möchten.

  2. Führen Sie Get-ChildItem aus, um die Liste abzurufen.

Beispiel für Get-ChildItem (PowerShell)

In diesen Beispielen werden die von Get-ChildItem für andere Knoten in einem SQL Server-Anbieterpfad zurückgegebenen Informationen veranschaulicht.

## Return the current computer and any computer
## to which you have made a SQL or WMI connection.
Set-Location SQLSERVER:\SQL
Get-ChildItem

## List the instances of the Database Engine on the local computer.

Set-Location SQLSERVER:\SQL\localhost
Get-ChildItem

## Lists the categories of objects available in the
## default instance on the local computer.
Set-Location SQLSERVER:\SQL\localhost\DEFAULT
Get-ChildItem

## Lists the databases from the local default instance.
## The force parameter is used to include the system databases.
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
Get-ChildItem -force

Erstellen eines benutzerdefinierten Laufwerks

Erstellen und Verwenden eines benutzerdefinierten Laufwerks

  1. Verwenden Sie New-PSDrive, um ein benutzerdefiniertes Laufwerk zu definieren. Verwenden Sie den Root-Parameter, um den Pfad anzugeben, der durch den Namen des benutzerdefinierten Laufwerks dargestellt wird.

  2. Verweisen Sie in Pfadnavigations-Cmdlets, wie z. B. Set-Location, auf den Namen des benutzerdefinierten Laufwerks.

Beispiel für ein benutzerdefiniertes Laufwerk (PowerShell)

In diesem Beispiel wird ein virtuelles Laufwerk mit dem Namen AWDB erstellt, das dem Knoten für eine bereitgestellte Kopie der Beispieldatenbank AdventureWorks2012 zugeordnet ist. Das virtuelle Laufwerk wird dann verwendet, um zu einer Tabelle in der Datenbank zu navigieren.

## Create a new virtual drive.
New-PSDrive -Name AWDB -Root SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2012

## Use AWDB: to navigate to a specific table.
Set-Location AWDB:\Tables\Purchasing.Vendor

Siehe auch

Konzepte

SQL Server PowerShell-Anbieter

Verwenden von SQL Server PowerShell-Pfaden

Konvertieren von URNs in SQL Server-Anbieterpfade

SQL Server-PowerShell