SQL Server PowerShell パスの移動
データベース エンジンの PowerShell プロバイダーは、ファイル パスと同様の構造で、SQL Server のインスタンス内のオブジェクトのセットを公開します。 Windows PowerShell コマンドレットを使用することで、プロバイダー パスを移動し、カスタム ドライブを作成して、入力するパスを短くすることができます。
はじめに
Windows PowerShell では、コマンドレットを実装して、PowerShell プロバイダーによりサポートされるオブジェクトの階層を表すパス構造を移動できます。 そのパス内のノードへ移動したときに、他のコマンドレットを使用して、現在のオブジェクトの基本的な操作を実行することができます。 コマンドレットは頻繁に使用されるため、短い標準の別名が用意されています。 また、コマンドレットを類似のコマンド プロンプトのコマンドにマップする別名のセットと、UNIX シェル コマンド用の別のセットもあります。
SQL Server プロバイダーは、次の表に示すように、プロバイダー コマンドレットのサブセットを実装します。
コマンドレット | 標準の別名 | コマンドの別名 | UNIX シェルの別名 | 説明 |
---|---|---|---|---|
Get-Location | gl | pwd | pwd | 現在のノードを取得します。 |
Set-Location |
sl | cd、chdir | cd、chdir | 現在のノードを変更します。 |
Get-ChildItem | gci | dir | ls | 現在のノードに格納されているオブジェクトの一覧を表示します。 |
Get-Item | gi | 現在のアイテムのプロパティを返します。 | ||
Rename-Item | rni | rn | ren | オブジェクトの名前を変更します。 |
Remove-Item | ri | del、rd | rm、rmdir | オブジェクトを削除します。 |
重要
一部の SQL Server 識別子 (オブジェクト名) には、Windows PowerShell のパス名ではサポートされない文字が含まれている場合があります。 それらの文字を含む名前の使用方法の詳細については、「 PowerShell での SQL Server 識別子」を参照してください。
Get-childitem によって返される SQL Server 情報
Get-ChildItem (またはその別名の dir および ls ) で返される情報は、SQLSERVER: パス内の場所によって異なります。
パスの場所 | Get-ChildItem の結果 |
---|---|
SQLSERVER:\SQL | ローカル コンピューターの名前を返します。 SMO または WMI を使用して他のコンピューター上のデータベース エンジンのインスタンスに接続した場合は、それらのコンピューターも一覧表示されます。 |
SQLSERVER:\SQL\ComputerName | コンピューター上のデータベース エンジンのインスタンスの一覧。 |
SQLSERVER:\SQL\ComputerName\InstanceName | インスタンス内の最上位レベルのオブジェクトの種類の一覧 (Endpoints、Certificates、Databases など)。 |
オブジェクト クラスのノード (Databases など) | その種類のオブジェクトの一覧 (データベースの場合は master、model、AdventureWorks2008R2 など)。 |
オブジェクト名のノード (AdventureWorks2012 など) | オブジェクト内に格納されているオブジェクトの種類の一覧。 たとえば、データベースの場合はテーブルやビューなどのオブジェクトの種類が一覧表示されます。 |
既定では、 Get-ChildItem でシステム オブジェクトは一覧表示されません。 システム オブジェクト (たとえば sys スキーマ内のオブジェクト) を表示するには、 Force パラメーターを使用します。
カスタム ドライブ
Windows PowerShell では、"PowerShell ドライブ" と呼ばれる仮想ドライブをユーザーが定義できます。 これらのドライブには、パス ステートメントの開始ノードがマップされます。 これらは、通常、頻繁に入力されるパスを短縮するために使用します。 SQLSERVER: パスは長くなることがあり、長くなるとその分 Windows PowerShell ウィンドウ内の領域が使用され、多くの入力が必要になります。 特定のパス ノードで多くの作業を行う場合は、そのノードにマップされる Windows PowerShell のカスタム ドライブを定義することができます。
PowerShell コマンドレットの別名の使用
コマンドレットの別名の使用
- 完全なコマンドレット名を入力する代わりに、より短い別名、つまり使い慣れたコマンド プロンプト コマンドに割り当てられた名前を入力します。
別名の例 (PowerShell)
たとえば、次に示す一連のコマンドレットまたは別名のいずれかを使用して、SQLSERVER:\SQL フォルダーに移動しフォルダーの子アイテムの一覧を要求することによって、使用できる SQL Server インスタンスの一覧を取得することができます。
## 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
Get-ChildItem の使用
Get-childitem を使用した情報の取得
子の一覧を取得する対象のノードに移動します。
Get-childitem を実行して、一覧を取得します。
Get-ChildItem の例 (PowerShell)
これらの例は、SQL Server プロバイダー パス内の異なるノードについて、Get-Childitem で返される情報を示しています。
## 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
カスタム ドライブの作成
カスタム ドライブの作成と使用
New-PSDrive
を使用して、カスタム ドライブを定義します。Root
パラメーターを使用して、カスタム ドライブ名で表されるパスを指定します。Set-Location
などのパス移動コマンドレットでカスタム ドライブ名を参照します。
カスタム ドライブの例 (PowerShell)
この例では、配置された AdventureWorks2012 サンプル データベースのコピーのノードにマップする AWDB という名前の仮想ドライブを作成します。 仮想ドライブを使用して、データベース内のテーブルに移動します。
## 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
参照
SQL Server PowerShell プロバイダー
SQL Server PowerShell パスの操作
URN から SQL Server プロバイダー パスへの変換
SQL Server PowerShell