SQL Server PowerShell Provider

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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

Note

SQL Server PowerShell モジュールには SqlServerSQLPS の 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 など) とオブジェクト名 (AdventureWorks2022 など) で切り替わります。 スキーマはオブジェクト クラスとしては表されません。 スキーマ内の最上位レベルのオブジェクト (テーブルやビューなど) のノードを指定する場合、オブジェクト名を SchemaName.ObjectNameの形式で指定する必要があります。

次の例は、ローカル コンピューター上の データベース エンジン の既定のインスタンスにある AdventureWorks2022 データベースの Purchasing スキーマ内の Vendor テーブルのパスを示しています。

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

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

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

Path SMO クラス
SQLSERVER:\SQL\MyComputer\DEFAULT\Databases DatabaseCollection
SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks2022 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