SQL Server PowerShell プロバイダー

Windows PowerShell 用の SQL Server プロバイダーは、ファイル システム パスと同様のパスで SQL Server オブジェクトの階層を公開します。 このパスを使用してオブジェクトの場所を指定し、SQL Server 管理オブジェクト (SMO) モデルのメソッドを使用してオブジェクトの操作を実行できます。

SQL Server PowerShell プロバイダーの利点

SQL Server プロバイダーによって実装されているパスを使用すると、SQL Server のインスタンス内のすべてのオブジェクトを簡単に対話的に確認できます。 ファイル システムのパスの操作に一般的に使用されているコマンドと同様の Windows PowerShell の別名を使用して、パスを操作できます。

SQL Server PowerShell の階層

データまたはオブジェクトのモデルを階層で表すことができる製品は、Windows PowerShell プロバイダーを使用して階層を公開できます。 階層は、Windows ファイル システムで使用されるものに似たドライブおよびパス構造を使用して公開されます。

それぞれの Windows PowerShell プロバイダーは 1 つ以上のドライブを実装します。 各ドライブは、関連するオブジェクトの階層のルート ノードです。 SQL Server プロバイダーは、SQLSERVER: ドライブを実装します。 プロバイダーは、SQLSERVER: ドライブの主要フォルダーのセットも定義します。 各フォルダーおよびそのサブフォルダーは、SQL Server 管理オブジェクト モデルを使用してアクセスできるオブジェクトのセットを表します。 これらのいずれかの主要フォルダーで始まるパスでサブフォルダーにフォーカスを設定すると、関連付けられたオブジェクト モデルのメソッドを使用して、このノードによって表されるオブジェクトの操作を実行できます。 SQL Server 2012 プロバイダーが実装する Windows PowerShell フォルダーを次の表に示します。

フォルダー

SQL Server オブジェクト モデルの名前空間

オブジェクト

SQLSERVER:\SQL

Microsoft.SqlServer.Management.Smo

Microsoft.SqlServer.Management.Smo.Agent

Microsoft.SqlServer.Management.Smo.Broker

Microsoft.SqlServer.Management.Smo.Mail

データベース オブジェクト (テーブル、ビュー、ストアド プロシージャなど)

SQLSERVER:\SQLPolicy

Microsoft.SqlServer.Management.Dmf

Microsoft.SqlServer.Management.Facets

ポリシー ベースの管理オブジェクト (ポリシーやファセットなど)

SQLSERVER:\SQLRegistration

Microsoft.SqlServer.Management.RegisteredServers

Microsoft.SqlServer.Management.Smo.RegSvrEnum

登録済みサーバー オブジェクト (サーバー グループや登録済みサーバーなど)

SQLSERVER:\Utility

Microsoft.SqlServer.Management.Utility

ユーティリティ オブジェクト (データベース エンジンのマネージ インスタンスなど)

SQLSERVER:\DAC

Microsoft.SqlServer.Management.DAC

データ層アプリケーション オブジェクト (DAC パッケージなど) と操作 (DAC の配置など)

SQLSERVER:\DataCollection

Microsoft.SqlServer.Management.Collector

コレクション セットや構成ストアなどのデータ コレクター オブジェクト

SQLSERVER:\IntegrationServices

Microsoft.SqlServer.Management.IntegrationServices

プロジェクト、パッケージ、環境などの Integration Services オブジェクト

SQLSERVER:\SQLAS

Microsoft.AnalysisServices

キューブ、集計、ディメンションなどの Analysis Services オブジェクト

たとえば、SQLSERVER:\SQL フォルダーを使用して、SMO オブジェクト モデルでサポートされる任意のオブジェクトを表すパスを開始することができます。 SQLSERVER:\SQL パスの先頭部分は、SQLSERVER:\SQL\ComputerName\InstanceName です。 インスタンス名の後のノードは、オブジェクト コレクション (Databases、Views など) とオブジェクト名 (AdventureWorks2012 など) で切り替わります。 スキーマはオブジェクト クラスとしては表されません。 スキーマ内の最上位レベルのオブジェクト (テーブルやビューなど) のノードを指定する場合、オブジェクト名を SchemaName.ObjectName の形式で指定する必要があります。

ローカル コンピューター上のデータベース エンジンの既定のインスタンスにある AdventureWorks2012 データベースの Purchasing スキーマ内の Vendor テーブルのパスは次のようになります。

SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2012\Tables\Purchasing.Vendor

SMO オブジェクト モデルの階層の詳細については、「SMO オブジェクト モデル ダイアグラム」を参照してください。

パスに含まれるコレクション ノードは、関連付けられたオブジェクト モデルのコレクション クラスに関連付けられます。 オブジェクト名ノードは、次の表に示すように、関連付けられたオブジェクト モデルのオブジェクト クラスに関連付けられます。

パス

SMO クラス

SQLSERVER:\SQL\MyComputer\DEFAULT\Databases

DatabaseCollection

SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks2012

Database

SQL Server プロバイダーのタスク

タスクの説明

トピック

パス内のノードを移動し、各ノードでそのノードのオブジェクトの一覧を取得するために Windows PowerShell コマンドレットを使用する方法について説明します。

SQL Server PowerShell パスの移動

パス内のノードによって表されているオブジェクトに対するレポート作成や操作を行うための SMO メソッドおよびプロパティを使用する方法について説明します。 また、そのノードの SMO メソッドおよびプロパティの一覧を取得する方法についても説明します。

SQL Server PowerShell パスの操作

SMO URN (Uniform Resource Name) を SQL Server プロバイダー パスに変換する方法について説明します。

URN から SQL Server プロバイダー パスへの変換

SQL Server プロバイダーを使用して SQL Server 認証接続を開く方法について説明します。 既定では、プロバイダーは、Windows PowerShell セッションを実行している Windows アカウントの資格情報を使用して確立された Windows 認証接続を使用します。

データベース エンジン PowerShell での認証の管理

関連項目

概念

SQL Server PowerShell