プロバイダーは、ユーザーがコマンドレットのいずれかの静的パラメーターに特定の値を指定したときに、プロバイダー コマンドレットに追加される動的パラメーターを定義できます。 たとえば、プロバイダーは、ユーザーが Get-Item
または Set-Item
プロバイダーコマンドレットを呼び出すときに指定するパスに基づいて、さまざまな動的パラメーターを追加できます。
動的パラメーター メソッド
動的パラメーターは、System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters*、system.Management.Automation.Provider.SetItemDynamicParameters.SetItemDynamicParameters* メソッド などの動的パラメーター メソッドのいずれかを実装することによって定義されます。 これらのメソッドは、スタンドアロン コマンドレットと同様の属性で修飾されたパブリック プロパティを持つオブジェクトを返します。 証明書プロバイダーから取得した System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* メソッドの実装例を次に示します。
protected override object GetItemDynamicParameters(string path)
{
return new CertificateProviderDynamicParameters();
}
プロバイダー コマンドレットの静的パラメーターとは異なり、スタンドアロン コマンドレットでパラメーターを定義するのと同じ方法で、これらのパラメーターの特性を指定できます。 証明書プロバイダーから取得した動的パラメーター クラスの例を次に示します。
internal sealed class CertificateProviderDynamicParameters
{
/// <summary>
/// Dynamic parameter the controls whether we only return
/// code signing certs.
/// </summary>
[Parameter()]
public SwitchParameter CodeSigningCert
{
get
{
{
return codeSigningCert;
}
}
set
{
{
codeSigningCert = value;
}
}
}
private SwitchParameter codeSigningCert = new SwitchParameter();
}
動的パラメーター
動的パラメーターの追加に使用できる静的パラメーターの一覧を次に示します。
Clear-Content
コマンドレット - System.Management.Automation.Provider.IContentCmdletProvider.ClearContentDynamicParameters* メソッドを実装することで、Clear-Clear コマンドレットのPath
パラメーターによってトリガーされる動的パラメーターを定義できます。Clear-Item
コマンドレット - System.Management.Automation.Provider.ItemCmdletProvider.ClearItemDynamicParameters* メソッドを実装することで、Clear-Item
コマンドレットのPath
パラメーターによってトリガーされる動的パラメーターを定義できます。Clear-ItemProperty
コマンドレット - System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* メソッドを実装することで、Clear-ItemProperty
コマンドレットのPath
パラメーターによってトリガーされる動的パラメーターを定義できます。Copy-Item
コマンドレット - System.Management.Automation.Provider.ContainerCmdletProvider.CopyItemDynamicParameters* メソッドを実装することで、Copy-Item
コマンドレットのPath
、Destination
、およびRecurse
パラメーターによってトリガーされる動的パラメーターを定義できます。Get-ChildItem
コマンドレット - System.Management.Automation.Provider.ContainerCmdletProvider.GetChildItemsDynamicParameters* および System.Management.Automation.Provider.ContainerCmdletProvider.GetChildNamesDynamicParameters* メソッドを実装することで、Get-ChildItem
コマンドレットのPath
パラメーターとRecurse
パラメーターによってトリガーされる動的パラメーターを定義できます。Get-Content
コマンドレット - System.Management.Automation.Provider.IContentCmdletProvider.GetContentReaderDynamicParameters* メソッドを実装することで、Get-Content
コマンドレットのPath
パラメーターによってトリガーされる動的パラメーターを定義できます。Get-Item
コマンドレット -Get-Item
コマンドレットのPath
パラメーターによってトリガーされる動的パラメーターを定義するには、System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* メソッドを実装します。Get-ItemProperty
コマンドレット - System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* メソッドを実装することで、Get-ItemProperty
コマンドレットのPath
パラメーターとName
パラメーターによってトリガーされる動的パラメーターを定義できます。Invoke-Item
コマンドレット - System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultActionDynamicParameters* メソッドを実装することで、Invoke-Item
コマンドレットのPath
パラメーターによってトリガーされる動的パラメーターを定義できます。Move-Item
コマンドレット - System.Management.Automation.Provider.NavigationCmdletProvider.MoveItemDynamicParameters* メソッドを実装することで、Move-Item
コマンドレットのPath
パラメーターとDestination
パラメーターによってトリガーされる動的パラメーターを定義できます。New-Item
コマンドレット - System.Management.Automation.Provider.ContainerCmdletProvider.NewItemDynamicParameters* メソッドを実装することで、New-Item
コマンドレットのPath
、ItemType
、およびValue
パラメーターによってトリガーされる動的パラメーターを定義できます。New-ItemProperty
コマンドレット - System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.NewPropertyDynamicParameters* メソッドを実装することで、New-ItemProperty
コマンドレットのPath
、Name
、PropertyType
、およびValue
パラメーターによってトリガーされる動的パラメーターを定義できます。New-PSDrive
コマンドレット - System.Management.Automation.Provider.DriveCmdletProvider.NewDriveDynamicParameters* メソッドを実装することで、New-PSDrive
コマンドレットによって返される System.Management.Automation.PSDriveInfo オブジェクトによってトリガーされる動的パラメーターを定義できます。Remove-Item
コマンドレット - System.Management.Automation.Provider.ContainerCmdletProvider.RemoveItemDynamicParameters* メソッドを実装することで、Remove-Item
コマンドレットのPath
パラメーターとRecurse
パラメーターによってトリガーされる動的パラメーターを定義できます。Remove-ItemProperty
コマンドレット - System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.RemovePropertyDynamicParameters* メソッドを実装することで、Remove-ItemProperty
コマンドレットのPath
パラメーターとName
パラメーターによってトリガーされる動的パラメーターを定義できます。Rename-Item
コマンドレット - System.Management.Automation.Provider.ContainerCmdletProvider.RenameItemDynamicParameters* メソッドを実装することで、Rename-Item
コマンドレットのPath
パラメーターとNewName
パラメーターによってトリガーされる動的パラメーターを定義できます。Rename-ItemProperty
- System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.RenamePropertyDynamicParameters* メソッドを実装することで、Rename-ItemProperty
コマンドレットのPath
、Name
、およびNewName
パラメーターによってトリガーされる動的パラメーターを定義できます。Set-Content
コマンドレット - System.Management.Automation.Provider.IContentCmdletProvider.GetContentWriterDynamicParameters* メソッドを実装することで、Set-Content
コマンドレットのPath
パラメーターによってトリガーされる動的パラメーターを定義できます。Set-Item
コマンドレット - System.Management.Automation.Provider.ItemCmdletProvider.SetItemDynamicParameters* メソッドを実装することで、Set-Item
コマンドレットのPath
およびValue
パラメーターによってトリガーされる動的パラメーターを定義できます。Set-ItemProperty
コマンドレット - System.Management.Automation.Provider.IPropertyCmdletProvider.SetPropertyDynamicParameters* メソッドを実装することで、Set-Item
コマンドレットのPath
パラメーターとValue
パラメーターによってトリガーされる動的パラメーターを定義できます。Test-Path
コマンドレット - System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultActionDynamicParameters* メソッドを実装することで、Test-Path
コマンドレットのPath
パラメーターによってトリガーされる動的パラメーターを定義できます。
こちらもご覧ください
Windows PowerShell プロバイダー の作成の
PowerShell