プロバイダーの種類

プロバイダーは、PowerShell によって提供されるプロバイダー コマンドレットによるアクションの実行方法を変更することで、基本的な機能を定義します。 たとえば、プロバイダーはコマンドレットの既定の機能を使用したり、データ ストアから項目を取得するときにコマンドレットの動作を Get-Item 変更したりできます。 このドキュメントで説明するプロバイダー機能には、特定のプロバイダーの基本クラスとインターフェイスからメソッドを上書きすることで定義される機能が含まれています。

注意

PowerShell によって事前に定義されているプロバイダー機能については、「プロバイダーの機能」 を参照してください

ドライブ対応プロバイダー

ドライブ対応プロバイダーは、ユーザーが使用できる既定のドライブを指定し、ユーザーがドライブを追加または削除できます。 ほとんどの場合、プロバイダーは、データ ストアにアクセスするために既定のドライブが必要なので、ドライブが有効なプロバイダーです。 ただし、独自のプロバイダーを作成する場合は、ユーザーにドライブの作成と削除を許可する場合と許可しない場合があります。

ドライブ対応プロバイダーを作成するには、プロバイダー クラスが System.Management.Automation.Provider.DriveCmdletProvider クラスまたはそのクラスから派生する別のクラスから派生している必要があります。 DriveCmdletProvider クラスでは、プロバイダーの既定のドライブを実装し、 コマンドレットと コマンドレットをサポートするための次の New-PSDrive メソッド Remove-PSDrive を定義します。 ほとんどの場合、プロバイダー コマンドレットをサポートするには、コマンドレットの メソッドなど、コマンドレットを呼び出す PowerShell エンジンが呼び出すメソッドを上書きする必要があります。また、必要に応じて、 などの 2 つ目のメソッドを上書きして、動的パラメーターをコマンドレットに追加することもできます。 NewDrive New-PSDrive NewDriveDynamicParameters

  • InitializeDefaultDrives メソッドは、プロバイダーが使用されるたびにユーザーが使用できる既定のドライブを定義します。

  • NewDrive メソッドと NewDriveDynamicParameters メソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を New-PSDrive 定義します。 このコマンドレットを使用すると、ユーザーはデータ ストアにアクセスするドライブを作成できます。

  • RemoveDrive メソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Remove-PSDrive 定義します。 このコマンドレットを使用すると、ユーザーはデータ ストアからドライブを削除できます。

項目が有効なプロバイダー

項目が有効なプロバイダーを使用すると、ユーザーはデータ ストア内の項目を取得、設定、またはクリアできます。 "項目" は、ユーザーが個別にアクセスまたは管理できるデータ ストアの要素です。 項目が有効なプロバイダーを作成するには、プロバイダー クラスが System.Management.Automation.Provider.ItemCmdletProvider クラスまたはそのクラスから派生する別のクラスから派生している必要があります。

ItemCmdletProvider クラスは、特定のプロバイダー コマンドレットを実装するための次のメソッドを定義します。 ほとんどの場合、プロバイダー コマンドレットをサポートするには、コマンドレットの メソッドなど、コマンドレットを呼び出す PowerShell エンジンが呼び出すメソッドを上書きする必要があります。また、必要に応じて、 などの 2 つ目のメソッドを上書きして、動的パラメーターをコマンドレットに追加することもできます。 ClearItem Clear-Item ClearItemDynamicParameters

  • ClearItem メソッドと ClearItemDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Clear-Item 定義します。 このコマンドレットを使用すると、ユーザーはデータ ストア内の項目の値を削除できます。

  • GetItem メソッドと GetItemDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Get-Item 定義します。 このコマンドレットを使用すると、ユーザーはデータ ストアからデータを取得できます。

  • SetItem メソッドと SetItemDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Set-Item 定義します。 このコマンドレットを使用すると、ユーザーはデータ ストア内の項目の値を更新できます。

  • InvokeDefaultAction メソッドと InvokeDefaultActionDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Invoke-Item 定義します。 このコマンドレットを使用すると、ユーザーは項目で指定された既定のアクションを実行できます。

  • ItemExists メソッドと ItemExistsDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Test-Path 定義します。 このコマンドレットを使用すると、ユーザーはパスのすべての要素が存在するかどうかを判断できます。

プロバイダー コマンドレットの実装に使用されるメソッドに加えて 、ItemCmdletProvider クラスでは次のメソッドも定義されます。

  • ExpandPath メソッドを使用すると、ユーザーはプロバイダー パスを指定するときにワイルドカードを使用できます。

  • IsValidPath は、パスが構文的および意味的にプロバイダーに対して有効かどうかを判断するために使用されます。

コンテナーが有効なプロバイダー

コンテナーが有効なプロバイダーを使用すると、ユーザーはコンテナーである項目を管理できます。 コンテナーは、共通の親項目の子項目のグループです。 コンテナー対応プロバイダーを作成するには、プロバイダー クラスが System.Management.Automation.Provider.ContainerCmdletProvider クラスまたはそのクラスから派生する別のクラスから派生している必要があります。

重要

コンテナーが有効なプロバイダーは、入れ子になったコンテナーを含むデータ ストアにアクセスできません。 コンテナーの子項目が別のコンテナーである場合は、ナビゲーションが有効なプロバイダーを実装する必要があります。

ContainerCmdletProvider クラスは、特定のプロバイダー コマンドレットを実装するための次のメソッドを定義します。 ほとんどの場合、プロバイダー コマンドレットをサポートするには、コマンドレットの メソッドなど、コマンドレットを呼び出す PowerShell エンジンが呼び出すメソッドを上書きする必要があります。また、必要に応じて、 などの 2 つ目のメソッドを上書きして、動的パラメーターをコマンドレットに追加することもできます。 CopyItem Copy-Item CopyItemDynamicParameters

  • CopyItem メソッドと CopyItemDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Copy-Item 定義します。 このコマンドレットを使用すると、ユーザーは項目をある場所から別の場所にコピーできます。

  • GetChildItems メソッドGetChildItemsDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Get-ChildItem 定義します。 このコマンドレットを使用すると、ユーザーは親項目の子項目を取得できます。

  • GetChildNamesメソッドとGetChildNamesDynamicParametersメソッドは、プロバイダーコマンドレットがパラメーターを指定した場合にプロバイダーコマンドレットをサポートする方法 Get-ChildItem Name を定義します。

  • NewItem メソッドと NewItemDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を New-Item 定義します。 このコマンドレットを使用すると、ユーザーはデータ ストアに新しい項目を作成できます。

  • RemoveItem メソッドと RemoveItemDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Remove-Item 定義します。 このコマンドレットを使用すると、ユーザーはデータ ストアから項目を削除できます。

  • RenameItem メソッドと RenameItemDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Rename-Item 定義します。 このコマンドレットを使用すると、ユーザーはデータ ストア内の項目の名前を変更できます。

ContainerCmdletProvider クラスは、プロバイダー コマンドレットの実装に使用されるメソッドに加えて、次のメソッドも定義します。

  • HasChildItemsメソッドをプロバイダー クラスで使用して、項目に子項目が含されているかどうかを判断できます。

  • ConvertPath メソッドをプロバイダー クラスで使用して、指定したパスから新しいプロバイダー固有のパスを作成できます。

ナビゲーションが有効なプロバイダーを使用すると、ユーザーはデータ ストア内の項目を移動できます。 ナビゲーションが有効なプロバイダーを作成するには、プロバイダー クラスが System.Management.Automation.Provider.NavigationCmdletProvider クラスから派生している必要 があります。

NavigationCmdletProvider クラスは、特定のプロバイダー コマンドレットを実装するための次のメソッドを定義します。 ほとんどの場合、プロバイダー コマンドレットをサポートするには、コマンドレットの メソッドなど、コマンドレットを呼び出す PowerShell エンジンが呼び出すメソッドを上書きする必要があります。また、必要に応じて、 などの 2 つ目のメソッドを上書きして、動的パラメーターをコマンドレットに追加することもできます。 MoveItem Move-Item MoveItemDynamicParameters

  • MoveItem メソッドと MoveItemDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Move-Item 定義します。 このコマンドレットを使用すると、ユーザーはストア内の 1 つの場所から別の場所に項目を移動できます。

  • MakePath メソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Join-Path 定義します。 このコマンドレットを使用すると、ユーザーは親と子のパス セグメントを組み合わせてプロバイダー内部パスを作成できます。

NavigationCmdletProvider クラスは、プロバイダー コマンドレットの実装に使用されるメソッドに加えて、次のメソッドも定義します。

コンテンツが有効なプロバイダー

コンテンツが有効なプロバイダーを使用すると、ユーザーはデータ ストア内の項目の内容をクリア、取得、または設定できます。 たとえば、FileSystem プロバイダーを使用すると、ファイル システム内のファイルの内容をクリア、取得、設定できます。 コンテンツが有効なプロバイダーを作成するには、プロバイダー クラスで System.Management.Automation.Provider.IContentCmdletProvider インターフェイスのメソッドを実装する必要があります。

IContentCmdletProvider インターフェイスでは、特定のプロバイダー コマンドレットを実装するための次のメソッドを定義します。 ほとんどの場合、プロバイダー コマンドレットをサポートするには、コマンドレットの メソッドなど、コマンドレットを呼び出す PowerShell エンジンが呼び出すメソッドを上書きする必要があります。また、必要に応じて、 などの 2 つ目のメソッドを上書きして、動的パラメーターをコマンドレットに追加することもできます。 ClearContent Clear-Content ClearContentDynamicParameters

  • ClearContentメソッドとClearContentDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Clear-Content 定義します。 このコマンドレットを使用すると、ユーザーは項目を削除せずに項目の内容を削除できます。

  • GetContentReaderメソッドとGetContentReaderDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Get-Content 定義します。 このコマンドレットを使用すると、ユーザーは項目の内容を取得できます。 メソッドは、コンテンツの読み取りに使用されるメソッドを定義する GetContentReader System.Management.Automation.Provider.IContentReader インターフェイスを返します。

  • GetContentWriterメソッドとGetContentWriterDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Set-Content 定義します。 このコマンドレットを使用すると、ユーザーは項目の内容を更新できます。 メソッドは、コンテンツの書き込みに使用されるメソッドを定義する GetContentWriter System.Management.Automation.Provider.IContentWriter インターフェイスを返します。

プロパティが有効なプロバイダー

プロパティが有効なプロバイダーを使用すると、ユーザーはデータ ストア内の項目のプロパティを管理できます。 プロパティが有効なプロバイダーを作成するには、プロバイダー クラスで System.Management.Automation.Provider.IPropertyCmdletProvider インターフェイスと System.Management.Automation.Provider.IDynamicPropertyCmdletProvider インターフェイスのメソッドを実装する必要があります。 ほとんどの場合、プロバイダー コマンドレットをサポートするには、PowerShell エンジンがコマンドレットを呼び出すメソッド (Clear-Property コマンドレットの メソッドなど) を上書きする必要があります。また、必要に応じて、 などの 2 つ目のメソッドを上書きして、動的パラメーターをコマンドレットに追加することもできます。 ClearProperty ClearPropertyDynamicParameters

IPropertyCmdletProvider インターフェイスは、特定のプロバイダー コマンドレットを実装するための次のメソッドを定義します。

  • ClearProperty メソッドと ClearPropertyDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Clear-ItemProperty 定義します。 このコマンドレットを使用すると、ユーザーは プロパティの値を削除できます。

  • GetProperty メソッドと GetPropertyDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Get-ItemProperty 定義します。 このコマンドレットを使用すると、ユーザーは項目の プロパティを取得できます。

  • SetProperty メソッドと SetPropertyDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Set-ItemProperty 定義します。 このコマンドレットを使用すると、ユーザーは項目のプロパティを更新できます。

IDynamicPropertyCmdletProvider インターフェイスは、特定のプロバイダー コマンドレットを実装するための次のメソッドを定義します。

  • CopyProperty メソッドと CopyPropertyDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Copy-ItemProperty 定義します。 このコマンドレットを使用すると、ユーザーはプロパティとその値をある場所から別の場所にコピーできます。

  • MoveProperty メソッドと MovePropertyDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を Move-ItemProperty 定義します。 このコマンドレットを使用すると、ユーザーはプロパティとその値をある場所から別の場所に移動できます。

  • NewProperty メソッドと NewPropertyDynamicParametersメソッドは、プロバイダーがプロバイダー コマンドレットをサポートする方法を New-ItemProperty 定義します。 このコマンドレットを使用すると、ユーザーは新しいプロパティを作成し、その値を設定できます。

  • RemoveProperty メソッドと RemovePropertyDynamicParametersメソッドは、プロバイダーがコマンドレットをサポートする方法を定義 Remove-ItemProperty します。 このコマンドレットを使用すると、ユーザーはプロパティとその値を削除できます。

  • RenameProperty メソッドと RenamePropertyDynamicParametersメソッドは、プロバイダーがコマンドレットをサポートする方法を定義 Rename-ItemProperty します。 このコマンドレットを使用すると、ユーザーはプロパティの名前を変更できます。

関連項目

about_Providers

Windows PowerShell プロバイダーを記述する