Creating a Windows PowerShell Property Provider (Criar um Fornecedor de Propriedades do Windows PowerShell)

Este tópico descreve como criar um fornecedor que permite ao utilizador manipular as propriedades dos itens numa loja de dados. Como consequência, este tipo de prestador é referido como um fornecedor de propriedade Windows PowerShell. Por exemplo, o fornecedor de registo fornecido pela Windows PowerShell trata os valores-chave do registo como propriedades do item chave de registo. Este tipo de fornecedor deve adicionar a interface System.Management.Automation.Provider.Ipropertycmdletprovider à implementação da classe .NET.

Nota

Windows PowerShell fornece um ficheiro de modelo que pode usar para desenvolver um fornecedor de Windows PowerShell. O ficheiro .cs ModeloProvider está disponível no Microsoft Windows Software Development Kit para Windows Vista e .NET Framework componentes de tempo de execução 3.0. Para obter instruções de descarregamento, consulte Como instalar Windows PowerShell e descarregue o Windows PowerShell SDK. O modelo descarregado está disponível no <PowerShell Samples> diretório. Deverá fazer uma cópia deste ficheiro e utilizar a cópia para criar um novo fornecedor de Windows PowerShell, removendo qualquer funcionalidade de que não necessite. Para obter mais informações sobre outras implementações Windows PowerShell do fornecedor, consulte Designing Your Windows PowerShell Provider.

Atenção

Os métodos do seu fornecedor de propriedade devem escrever quaisquer objetos utilizando o método System.Management.Automation.Provider.Cmdletprovider.Writepropertyobject* .

Definição do fornecedor de Windows PowerShell

Um fornecedor de imóveis deve criar uma classe .NET que suporte a interface System.Management.Automation.Provider.Ipropertycmdletprovider. Aqui está a declaração de classe predefinido do ficheiro ModeloProvider.cs fornecido por Windows PowerShell.

Definição da funcionalidade base

A interface System.Management.Automation.Provider.Ipropertycmdletprovider pode ser anexada a qualquer uma das classes base do fornecedor, com exceção da classe System.Management.Automation.Provider.Drivecmdletprovider. Adicione a funcionalidade base que é exigida pela classe base que está a usar. Para obter mais informações sobre as classes base, consulte Designing Your Windows PowerShell Provider.

Recuperação de propriedades

Para recuperar propriedades, o fornecedor deve implementar o método System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* para suportar chamadas a partir do Get-ItemProperty cmdlet. Este método recupera as propriedades do item localizado no caminho interno do fornecedor especificado (totalmente qualificado).

O providerSpecificPickList parâmetro indica quais as propriedades a recuperar. Se este parâmetro estiver null ou estiver vazio, o método deve recuperar todas as propriedades. Além disso, System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* escreve uma instância de um System.Management.Automation.PSObject objeto que representa um saco de propriedade das propriedades recuperadas. O método não deve devolver nada.

Recomenda-se que a implementação do System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* suporte a expansão wildcard de nomes de propriedade para cada elemento na lista de escolhas. Para isso, utilize a classe System.Management.Automation.Wildcardpattern para executar o padrão wildcard correspondente.

Aqui está a implementação padrão do ficheiro System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* do ficheiro ModeloProvider.cs fornecido por Windows PowerShell.

Coisas a lembrar sobre implementar GetProperty

As seguintes condições podem aplicar-se à sua implementação de System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty*

Anexação de parâmetros dinâmicos ao Get-ItemProperty Cmdlet

O Get-ItemProperty cmdlet pode requerer parâmetros adicionais que são especificados dinamicamente no tempo de execução. Para fornecer estes parâmetros dinâmicos, o fornecedor de propriedade Windows PowerShell deve implementar o método System.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters*. O path parâmetro indica um caminho interno do fornecedor totalmente qualificado, enquanto o parâmetro especifica as propriedades providerSpecificPickList específicas do fornecedor inseridas na linha de comando. Este parâmetro pode estar null ou vazio se as propriedades forem canalizadas para o cmdlet. Neste caso, este método devolve um objeto que tem propriedades e campos com atributos de análise semelhantes a uma classe cmdlet ou a um System.Management.Automation.Runtimedefinedparametdictionary object. O tempo de execução Windows PowerShell utiliza o objeto devolvido para adicionar os parâmetros ao cmdlet.

Aqui está a implementação padrão do ficheiro System.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters* do ficheiro ModeloProvider.cs fornecido por Windows PowerShell.

Definição de propriedades

Para definir propriedades, o fornecedor de propriedade Windows PowerShell deve implementar o método System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* para suportar chamadas a partir do Set-ItemProperty cmdlet. Este método define uma ou mais propriedades do item no caminho especificado e substitui as propriedades fornecidas conforme necessário. System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* também escreve um exemplo de um system.Management.Automation.PSObject objeto que representa um saco de propriedade das propriedades atualizadas.

Aqui está a implementação padrão do ficheiro System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* do ficheiro ModeloProvider.cs fornecido por Windows PowerShell.

Coisas a lembrar sobre implementar Set-ItemProperty

As seguintes condições podem aplicar-se a uma implementação do System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty*

Fixação de parâmetros dinâmicos para o Set-ItemProperty Cmdlet

O Set-ItemProperty cmdlet pode requerer parâmetros adicionais que são especificados dinamicamente no tempo de execução. Para fornecer estes parâmetros dinâmicos, o fornecedor de propriedade Windows PowerShell deve implementar o método System.Management.Automation.Provider.Ipropertycmdletprovider.Setpropertydynamicparameters*. Este método devolve um objeto que tem propriedades e campos com atributos de análise semelhantes a uma classe cmdlet ou a um system.Management.Automation.Runtimedefinedparameterdicary object. O null valor pode ser devolvido se não forem adicionados parâmetros dinâmicos.

Aqui está a implementação padrão do ficheiro System.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters* do ficheiro ModeloProvider.cs fornecido por Windows PowerShell.

Propriedades de Compensação

Para limpar propriedades, o fornecedor de propriedade Windows PowerShell deve implementar o método System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty* para suportar chamadas a partir do Clear-ItemProperty cmdlet. Este método define uma ou mais propriedades para o item localizado no caminho especificado.

Aqui está a implementação padrão do ficheiro System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty* do ficheiro ModeloProvider.cs fornecido por Windows PowerShell.

Coisa a lembrar sobre implementar ClearProperty

As seguintes condições podem aplicar-se à sua implementação do System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty*

Anexação de parâmetros dinâmicos ao Clear-ItemProperty Cmdlet

O Clear-ItemProperty cmdlet pode requerer parâmetros adicionais que são especificados dinamicamente no tempo de execução. Para fornecer estes parâmetros dinâmicos, o fornecedor de propriedade Windows PowerShell deve implementar o método System.Management.Automation.Provider.Ipropertycmdletprovider.Clearpropertydynamicparameters*. Este método devolve um objeto que tem propriedades e campos com atributos de análise semelhantes a uma classe cmdlet ou a um system.Management.Automation.Runtimedefinedparameterdicary object. O null valor pode ser devolvido se não forem adicionados parâmetros dinâmicos.

Aqui está a implementação padrão do Sistema.Management.Automation.Provider.Ipropertycmdletprovider.Clearpropertydynamicparameters* do ficheiro ModeloProvider.cs fornecido por Windows PowerShell.

Construção do provedor de Windows PowerShell

Ver Como Registar Cmdlets, Fornecedores e Aplicações de Anfitrião.

Consulte também

Windows PowerShell provedor

Desenhe o seu fornecedor de Windows PowerShell

Ampliação de tipos de objetos e formatação

Como registar cmdlets, fornecedores e aplicações de anfitrião