Windows PowerShell プロパティ プロバイダーを作成する

このトピックでは、ユーザーがデータ ストア内の項目のプロパティを操作できるプロバイダーを作成する方法について説明します。 その結果、この種類のプロバイダーは、プロパティ プロバイダー Windows PowerShell呼ばれます。 たとえば、 によって提供されるレジストリ プロバイダー Windows PowerShellレジストリ キー項目のプロパティとしてレジストリ キーの値を処理します。 この種類のプロバイダーでは 、System.Management.Automation.Provider.Ipropertycmdletprovider インターフェイスを .NET クラスの実装に追加する必要があります。

注意

Windows PowerShellプロバイダーの開発に使用できるテンプレート ファイルがWindows PowerShellされます。 TemplateProvider.cs ファイルは、Microsoft Windows Software Development Kit for Windows Vista および .NET Framework 3.0 Runtime Components で使用できます。 ダウンロード手順については、「インストール方法」および「Windows PowerShell SDK のダウンロード」をWindows PowerShellしてください。 ダウンロードしたテンプレートは、 ディレクトリで使用 <PowerShell Samples> できます。 このファイルのコピーを作成し、そのコピーを使用して新しい Windows PowerShell プロバイダーを作成し、不要な機能を削除する必要があります。 その他のプロバイダー実装のWindows PowerShellについては、「 Designing Your Windows PowerShell Provider 」を参照してください

注意事項

プロパティ プロバイダーのメソッドでは 、System.Management.Automation.Provider.Cmdletprovider.Writepropertyobject* メソッドを使用してオブジェクトを記述する必要があります。

サービス プロバイダー Windows PowerShell定義する

プロパティ プロバイダーは 、System.Management.Automation.Provider.Ipropertycmdletprovider インターフェイスをサポートする .NET クラスを作成する必要があります。 次に示すのは、テンプレートによって提供される TemplateProvider.cs ファイルからの既定のクラス宣言Windows PowerShell。

基本機能の定義

System.Management.Automation.Provider.Ipropertycmdletproviderインターフェイスは、System.Management.Automation.Provider.Drivecmdletproviderクラスを除き、プロバイダーの基本クラスにアタッチできます。 使用している基本クラスに必要な基本機能を追加します。 基本クラスの詳細については、「 Designing Your Windows PowerShell Provider 」を参照してください

プロパティの取得

プロパティを取得するには、プロバイダーがコマンドレットからの呼び出しをサポートするために System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* メソッドを実装する必要 Get-ItemProperty があります。 このメソッドは、指定されたプロバイダー内部パス (完全修飾) にある項目のプロパティを取得します。

パラメーター providerSpecificPickList は、取得するプロパティを示します。 このパラメーターが または空 null の場合、メソッドは、すべてのプロパティを取得する必要があります。 さらに 、System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* は、取得したプロパティのプロパティ バッグを表す System.Management.Automation.PSObject オブジェクトのインスタンスを書き込みます。 メソッドは何も返しません。

System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty*の実装では、選択リスト内の各要素のプロパティ名のワイルドカード展開がサポートされています。 これを行うには 、System.Management.Automation.Wildcardpattern クラスを使用してワイルドカード パターン マッチングを実行します。

Windows PowerShell によって提供される TemplateProvider.cs ファイルのSystem.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty*の既定の実装を次に示します。

GetProperty の実装に関する注意

System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty*の実装には、次の条件が適用される場合があります。

動的パラメーターを Get-ItemProperty コマンドレットにアタッチする

コマンドレット Get-ItemProperty では、実行時に動的に指定される追加のパラメーターが必要になる場合があります。 これらの動的パラメーターを指定するには、Windows PowerShell プロパティ プロバイダーがSystem.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters*メソッドを実装する必要があります。 パラメーターは完全修飾プロバイダー内部パスを示し、 パラメーターはコマンド ラインで入力されたプロバイダー固有のプロパティ path providerSpecificPickList を指定します。 プロパティがコマンドレットに null パイプされる場合、このパラメーターは または空になる場合があります。 この場合、このメソッドは、コマンドレット クラスまたは System.Management.Automation.Runtimedefinedparameterdictionary オブジェクトと同様の解析属性を持つプロパティとフィールドを持つオブジェクトを返します。 このWindows PowerShell返されたオブジェクトを使用して、コマンドレットにパラメーターを追加します。

Windows PowerShell によって提供される TemplateProvider.cs ファイルのSystem.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters*の既定の実装を次に示します。

プロパティの設定

プロパティを設定するには、Windows PowerShell プロパティ プロバイダーがSystem.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty*メソッドを実装して、 コマンドレットからの呼び出しをサポートする必要 Set-ItemProperty があります。 このメソッドは、指定したパスにある項目の 1 つ以上のプロパティを設定し、指定されたプロパティを必要に応じて上書きします。 System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* は、更新されたプロパティのプロパティ バッグを表す System.Management.Automation.PSObject オブジェクトのインスタンスも書き込みます。

Windows PowerShell によって提供される TemplateProvider.cs ファイルのSystem.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty*の既定の実装を次に示します。

実装に関する注意Set-ItemProperty

System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty*の実装には、次の条件が適用される場合があります。

Set-ItemProperty コマンドレットの動的パラメーターのアタッチ

コマンドレット Set-ItemProperty では、実行時に動的に指定される追加のパラメーターが必要になる場合があります。 これらの動的パラメーターを指定するには、Windows PowerShell プロパティ プロバイダーがSystem.Management.Automation.Provider.Ipropertycmdletprovider.Setpropertydynamicparameters*メソッドを実装する必要があります。 このメソッドは、コマンドレット クラスまたは System.Management.Automation.Runtimedefinedparameterdictionary オブジェクトのような解析属性を持つプロパティとフィールドを持つオブジェクトを返します。 動的 null パラメーターを追加する必要がない場合は、値を返します。

Windows PowerShell によって提供される TemplateProvider.cs ファイルのSystem.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters*の既定の実装を次に示します。

プロパティのクリア

プロパティをクリアするには、Windows PowerShell プロパティ プロバイダーがSystem.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty*メソッドを実装して、 コマンドレットからの呼び出しをサポートする必要 Clear-ItemProperty があります。 このメソッドは、指定したパスにある項目に対して 1 つ以上のプロパティを設定します。

Windows PowerShell によって提供される TemplateProvider.cs ファイルのSystem.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty*の既定の実装を次に示します。

ClearProperty の実装に関する注意

System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty*の実装には、次の条件が適用される場合があります。

動的パラメーターを Clear-ItemProperty コマンドレットにアタッチする

コマンドレット Clear-ItemProperty では、実行時に動的に指定される追加のパラメーターが必要になる場合があります。 これらの動的パラメーターを指定するには、Windows PowerShell プロパティ プロバイダーがSystem.Management.Automation.Provider.Ipropertycmdletprovider.Clearpropertydynamicparameters*メソッドを実装する必要があります。 このメソッドは、コマンドレット クラスまたは System.Management.Automation.Runtimedefinedparameterdictionary オブジェクトのような解析属性を持つプロパティとフィールドを持つオブジェクトを返します。 動的 null パラメーターを追加する必要がない場合は、値を返します。

Windows PowerShell によって提供される TemplateProvider.cs ファイルのSystem.Management.Automation.Provider.Ipropertycmdletprovider.Clearpropertydynamicparameters*の既定の実装を次に示します。

Windows PowerShell プロバイダーの構築

コマンドレット、プロバイダー、およびホスト アプリケーションを登録する方法」を参照してください

参照

Windows PowerShell プロバイダー

お使Windows PowerShellプロバイダーを設計する

オブジェクト型の拡張と書式設定

コマンドレット、プロバイダー、およびホスト アプリケーションを登録する方法