次の方法で共有


コマンドレット コマンドレットの動的パラメーター

プロバイダーは、ユーザーがコマンドレットのいずれかの静的パラメーターに特定の値を指定したときに、プロバイダー コマンドレットに追加される動的パラメーターを定義できます。 たとえば、プロバイダーは、ユーザーが 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();
}

動的パラメーター

動的パラメーターの追加に使用できる静的パラメーターの一覧を次に示します。

こちらもご覧ください

Windows PowerShell プロバイダー の作成の