SQL Server PowerShell Provider
適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Windows PowerShell 用の SQL Server プロバイダーは、ファイル システム パスと同様のパスで SQL Server オブジェクトの階層を公開します。 このパスを使用してオブジェクトの場所を指定し、 SQL Server 管理オブジェクト (SMO) モデルのメソッドを使用してオブジェクトの操作を実行できます。
Note
SQL Server PowerShell モジュールには SqlServer と SQLPS の 2 つがあります。
SqlServer モジュールは、使用する現在の PowerShell モジュールです。
SQLPS モジュールは、(後方互換性のため) SQL Server のインストールに含まれていますが、今後更新されることはありません。
SqlServer モジュールには、SQLPS のコマンドレットの更新バージョンに加え、最新の SQL 機能をサポートする新しいコマンドレットが含まれています。
PowerShell ギャラリーから SqlServer モジュールをインストールします。
詳細については、「SQL Server PowerShell」を参照してください。
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 プロバイダーが実装する Windows PowerShell フォルダーを次の表に示します。
Folder | SQL Server オブジェクト モデルの名前空間 | Objects |
---|---|---|
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:\SSIS |
Microsoft.SqlServer.Management.IntegrationServices | Integration Services プロジェクト、パッケージ、環境などのオブジェクト。 |
SQLSERVER:\XEvent |
Microsoft.SqlServer.Management.XEvent | SQL Server 拡張イベント |
SQLSERVER:\DatabaseXEvent |
Microsoft.SqlServer.Management.XEventDbScoped | SQL Server 拡張イベント |
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 オブジェクト モデル ダイアグラム」を参照してください。
パスに含まれるコレクション ノードは、関連付けられたオブジェクト モデルのコレクション クラスに関連付けられます。 オブジェクト名ノードは、次の表に示すように、関連付けられたオブジェクト モデルのオブジェクト クラスに関連付けられます。
Path | 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 での認証の管理 |