Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um provedor do Windows PowerShell permite que qualquer armazenamento de dados seja exposto como um sistema de arquivos como se fosse uma unidade montada. Por exemplo, o provedor interno do Registro permite que você navegue pelo registro como se navegasse na unidade de c do seu computador. Um provedor também pode substituir os cmdlets de Item (por exemplo, Get-Item, Set-Itemetc.) de modo que os dados em seu armazenamento de dados possam ser tratados como arquivos e diretórios são tratados ao navegar em um sistema de arquivos. Para obter mais informações sobre provedores e unidades e os provedores internos no Windows PowerShell, consulte about_Providers.
Provedores e unidades
Um Provedor define a lógica usada para acessar, navegar e editar um armazenamento de dados, enquanto uma unidade especifica um ponto de entrada específico para um armazenamento de dados (ou uma parte de um armazenamento de dados) que é do tipo definido pelo provedor. Por exemplo, o provedor do Registro permite que você acesse hives e chaves em um registro, e as unidades HKLM e HKCU especificam os hives correspondentes dentro do registro. As unidades HKLM e HKCU usam o provedor do Registro.
Ao escrever um provedor, você pode especificar unidades-unidades padrão que são criadas automaticamente quando o provedor está disponível. Você também define um método para criar novas unidades que usam esse provedor.
Tipo de provedores
Há vários tipos de provedores, cada um deles fornece um nível diferente de funcionalidade. Um provedor é implementado como uma classe que deriva de um dos descendentes da classe System.Management.Automation.SessionStateCategorycmdletProvider. Para obter informações sobre os diferentes tipos de provedores, consulte Tipos de provedor.
Cmdlets do provedor
Os provedores podem implementar métodos que correspondem a cmdlets, criando comportamentos personalizados para esses cmdlets quando usados em uma unidade para esse provedor. Dependendo do tipo de provedor, diferentes conjuntos de cmdlets estão disponíveis. Para obter uma lista completa dos cmdlets disponíveis para personalização em provedores, consulte cmdlets do provedor.
Caminhos do provedor
Os usuários navegam em unidades de provedor como sistemas de arquivos. Por isso, eles esperam que a sintaxe dos caminhos corresponda aos caminhos usados na navegação do sistema de arquivos. Quando um usuário executa um cmdlet de provedor, ele especifica um caminho para o item a ser acessado. O caminho especificado pode ser interpretado de várias maneiras. Um provedor deve dar suporte a um ou mais dos seguintes tipos de caminho.
Caminhos qualificados para unidade
Um caminho qualificado por unidade é uma combinação do nome do item, do contêiner e dos subcontenentes nos quais o item está localizado e da unidade do Windows PowerShell por meio da qual o item é acessado. (As unidades são definidas pelo provedor usado para acessar o armazenamento de dados. Esse caminho começa com o nome da unidade seguido de dois-pontos (:). Por exemplo: Get-ChildItem C:
Caminhos qualificados pelo provedor
Para permitir que o mecanismo do Windows PowerShell inicialize e não inicialize seu provedor, o provedor deve dar suporte a um caminho qualificado pelo provedor. Por exemplo, o usuário pode inicializar e não inicializar o provedor FileSystem porque ele define o seguinte caminho qualificado pelo provedor: FileSystem::\\uncshare\abc\bar.
Caminhos diretos do provedor
Para permitir o acesso remoto ao seu provedor do Windows PowerShell, ele deve dar suporte a um caminho direto do provedor para passar diretamente para o provedor do Windows PowerShell para o local atual. Por exemplo, o provedor do Windows PowerShell do Registro pode usar \\server\regkeypath como um caminho direto do provedor.
Caminhos internos do provedor
Para permitir que o cmdlet do provedor acesse dados usando APIs (interfaces de programação de aplicativos) não Windows PowerShell, seu provedor do Windows PowerShell deve dar suporte a um caminho interno do provedor. Esse caminho é indicado após "::" no caminho qualificado pelo provedor. Por exemplo, o caminho interno do provedor para o provedor do Windows PowerShell do FileSystem é \\uncshare\abc\bar.
Substituindo parâmetros de cmdlet
O comportamento de alguns cmdlets específicos do provedor pode ser substituído por um provedor. Para obter uma lista de parâmetros que podem ser substituídos e como substituí-los em sua classe de provedor, consulte parâmetros de cmdlet do provedor
Parâmetros dinâmicos
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. Um provedor faz isso implementando um ou mais métodos de parâmetro dinâmico. Para obter uma lista de parâmetros de cmdlet que podem ser usados para adicionar parâmetro dinâmico e os métodos usados para implementá-los, consulte parâmetros dinâmicos de cmdlet do provedor.
Funcionalidades do provedor
A enumeração System.Management.Automation.Provider.ProviderCapabilities define uma série de recursos que os provedores podem dar suporte. Isso inclui a capacidade de usar curingas, filtrar itens e dar suporte a transações. Para especificar recursos para um provedor, adicione uma lista de valores do System.Management.Automation.Provider.ProviderCapabilities enumeração, combinado com uma operação de OR lógica, como a propriedade System.Management.Automation.Provider.CmdletProviderAttribute.ProviderCapabilities* propriedade (o segundo parâmetro do atributo) do atributo System.Management.Automation.Provider.CmdletProviderAttribute atributo para sua classe de provedor. Por exemplo, o atributo a seguir especifica que o provedor dá suporte aos recursos System.Management.Automation.Provider.Provider.ProviderCapabilitiesShouldProcess e System.Management.Automation.Provider.ProviderCapabilitiesTransactions.
[CmdletProvider(RegistryProvider.ProviderName, ProviderCapabilities.ShouldProcess | ProviderCapabilities.Transactions)]
Ajuda do cmdlet do provedor
Ao escrever um provedor, você pode implementar sua própria Ajuda para os cmdlets de provedor que você dá suporte. Isso inclui um único tópico de ajuda para cada cmdlet de provedor ou várias versões de um tópico de ajuda para casos em que o cmdlet do provedor age de forma diferente com base no uso de parâmetros dinâmicos. Para dar suporte à ajuda específica do cmdlet do provedor, seu provedor deve implementar a interface System.Management.Automation.Provider.ICmdletProviderSupportsHelp.
O mecanismo do Windows PowerShell chama o método System.Management.Automation.Provider.ICmdletProviderSupportsHelp.GetHelpMaml* para exibir o tópico da Ajuda para os cmdlets do provedor. O mecanismo fornece o nome do cmdlet especificado pelo usuário ao executar o cmdlet Get-Help e o caminho atual do usuário.
O caminho atual será necessário se o provedor implementar versões diferentes do mesmo cmdlet de provedor para unidades diferentes. O método deve retornar uma cadeia de caracteres que contenha o XML para a Ajuda do cmdlet.
O conteúdo do arquivo de Ajuda é escrito usando O XML PSMAML. Esse é o mesmo esquema XML usado para escrever o conteúdo da Ajuda para cmdlets autônomos. Adicione o conteúdo da Ajuda do cmdlet personalizado ao arquivo de Ajuda do seu provedor no elemento CmdletHelpPaths. O exemplo a seguir mostra o elemento command para um único cmdlet de provedor e mostra como você especifica o nome do cmdlet do provedor que seu provedor. suporta
<CmdletHelpPaths>
<command:command>
<command:details>
<command:name>ProviderCmdletName</command:name>
<command:verb>Verb</command:verb>
<command:noun>Noun</command:noun>
<command:details>
</command:command>
<CmdletHelpPath>