Partilhar via


Provider cmdlet dynamic parameters (Parâmetros dinâmicos de cmdlets de fornecedores)

Os provedores podem definir parâmetros dinâmicos que são adicionados a um cmdlet de provedor quando o usuário especifica um determinado valor para um dos parâmetros estáticos do cmdlet. Por exemplo, um provedor pode adicionar diferentes parâmetros dinâmicos com base no caminho que o usuário especifica quando chama os cmdlets Get-Item ou Set-Item provedor.

Métodos de parâmetros dinâmicos

Os parâmetros dinâmicos são definidos implementando um dos métodos de parâmetros dinâmicos, como o System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* e métodos de System.Management.Automation.Provider.SetItemDynamicParameters.SetItemDynamicParameters*. Esses métodos retornam um objeto que tem propriedades públicas decoradas com atributos semelhantes aos de cmdlets autônomos. Aqui está um exemplo de uma implementação do System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* método retirado do provedor de certificado:

protected override object GetItemDynamicParameters(string path)
{
    return new CertificateProviderDynamicParameters();
}

Ao contrário dos parâmetros estáticos dos cmdlets do provedor, você pode especificar as características desses parâmetros da mesma forma que os parâmetros são definidos em cmdlets autônomos. Aqui está um exemplo de uma classe de parâmetro dinâmico obtida do provedor de certificado:

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();
}

Parâmetros dinâmicos

Aqui está uma lista dos parâmetros estáticos que podem ser usados para adicionar parâmetros dinâmicos.

  • Clear-Content cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelo parâmetro Path do cmdlet Clear-Clear implementando o método System.Management.Automation.Provider.IContentCmdletProvider.ClearContentDynamicParameters*.

  • Clear-Item cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelo parâmetro Path do cmdlet Clear-Item implementando o método System.Management.Automation.Provider.ItemCmdletProvider.ClearItemDynamicParameters*.

  • Clear-ItemProperty cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelo parâmetro Path do cmdlet Clear-ItemProperty implementando o método System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters*.

  • Copy-Item cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelos parâmetros Path, Destinatione Recurse do cmdlet Copy-Item implementando o método System.Management.Automation.Provider.ContainerCmdletProvider.CopyItemDynamicParameters* .

  • Get-ChildItem cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelos parâmetros Path e Recurse do cmdlet Get-ChildItem implementando os System.Management.Automation.Provider.ContainerCmdletProvider.GetChildItemsDynamicParameters* e métodos de System.Management.Automation.Provider.ContainerCmdletProvider.GetChildNamesDynamicParameters*.

  • Get-Content cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelo parâmetro Path do cmdlet Get-Content implementando o método System.Management.Automation.Provider.IContentCmdletProvider.GetContentReaderDynamicParameters*.

  • Get-Item cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelo parâmetro Path do cmdlet Get-Item implementando o método System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters*.

  • Get-ItemProperty cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelos parâmetros Path e Name do cmdlet Get-ItemProperty implementando o método System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters*.

  • Invoke-Item cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelo parâmetro Path do cmdlet Invoke-Item implementando o método System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultActionDynamicParameters*.

  • Move-Item cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelos parâmetros Path e Destination do cmdlet Move-Item implementando o método System.Management.Automation.Provider.NavigationCmdletProvider.MoveItemDynamicParameters*.

  • New-Item cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelos parâmetros Path, ItemTypee Value do cmdlet New-Item implementando o método System.Management.Automation.Provider.ContainerCmdletProvider.NewItemDynamicParameters*.

  • New-ItemProperty cmdlet - Você pode definir parâmetros dinâmicos acionados pelos parâmetros Path, Name, PropertyTypee Value do cmdlet New-ItemProperty implementando o método System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.NewPropertyDynamicParameters*.

  • New-PSDrive cmdlet - Você pode definir parâmetros dinâmicos acionados pelo objeto System.Management.Automation.PSDriveInfo retornado pelo cmdlet New-PSDrive implementando o método System.Management.Automation.Provider.DriveCmdletProvider.NewDriveDynamicParameters*.

  • Remove-Item cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelos parâmetros Path e Recurse do cmdlet Remove-Item implementando o método System.Management.Automation.Provider.ContainerCmdletProvider.RemoveItemDynamicParameters*.

  • Remove-ItemProperty cmdlet - Você pode definir parâmetros dinâmicos acionados pelos parâmetros Path e Name do cmdlet Remove-ItemProperty implementando o método System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.RemovePropertyDynamicParameters*.

  • Rename-Item cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelos parâmetros Path e NewName do cmdlet Rename-Item implementando o método System.Management.Automation.Provider.ContainerCmdletProvider.RenameItemDynamicParameters*.

  • Rename-ItemProperty - Você pode definir parâmetros dinâmicos que são acionados pelos parâmetros Path, Namee NewName do cmdlet Rename-ItemProperty implementando o método System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.RenamePropertyDynamicParameters*.

  • Set-Content cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelo parâmetro Path do cmdlet Set-Content implementando o método System.Management.Automation.Provider.IContentCmdletProvider.GetContentWriterDynamicParameters*.

  • Set-Item cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelos parâmetros Path e Value do cmdlet Set-Item implementando o método System.Management.Automation.Provider.ItemCmdletProvider.SetItemDynamicParameters*.

  • Set-ItemProperty cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelos parâmetros Path e Value do cmdlet Set-Item implementando o método System.Management.Automation.Provider.IPropertyCmdletProvider.SetPropertyDynamicParameters*.

  • Test-Path cmdlet - Você pode definir parâmetros dinâmicos que são acionados pelo parâmetro Path do cmdlet Test-Path implementando o método System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultActionDynamicParameters*.

Ver também

Escrevendo um provedor do Windows PowerShell