次の方法で共有


SQL Server PowerShell プロバイダー

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

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 フォルダーを次の表に示します。

フォルダー 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 登録済みサーバー オブジェクト (サーバー グループや登録済みサーバーなど)
SQLSERVER:\DataCollection Microsoft.SqlServer.Management.Collector コレクション セットや構成ストアなどのデータ コレクター オブジェクト
SQLSERVER:\SSIS Microsoft.SqlServer.Management.IntegrationServices プロジェクト、パッケージ、環境などの SSIS オブジェクト。
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 オブジェクト モデル階層の詳細については、「/sql/relational-databases/server-management-objects-smo/smo-object-model-diagram」を参照してください。

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

経路 SMO クラス
SQLSERVER:\SQL\MyComputer\DEFAULT\Databases Microsoft.SqlServer.Management.Smo.DatabaseCollection>
SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks2022 Microsoft.SqlServer.Management.Smo.Database>

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

タスクの説明 [アーティクル]
Windows PowerShell コマンドレットを使用してパス内のノード間を移動し、ノードごとにそのノードにあるオブジェクトの一覧を取得する方法について説明します。 SQL Server PowerShell パスの移動
SMO メソッドとプロパティを使用して、ノードがパス内で表すオブジェクトに対してレポートを作成し、処理を実行する方法について説明します。 また、そのノードの SMO メソッドおよびプロパティの一覧を取得する方法についても説明します。 SQL Server PowerShell パスの操作
SMO Uniform Resource Name (URN) を SQL Server プロバイダー パスに変換する方法について説明します。 Convert-UrnToPath
SQL Server プロバイダーを使用して SQL Server 認証接続を開く方法について説明します。 既定では、プロバイダーは Windows PowerShell セッションを実行している Windows アカウントの資格情報を使用して行われた Windows 認証接続を使用します。 データベース エンジン PowerShell での認証の管理

次のステップ