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、AdventureWorks20008R2 など)。 |
オブジェクト名のノード (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