Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Deve implementar um fornecedor Windows PowerShell se o seu produto ou configuração expor um conjunto de dados armazenados, como uma base de dados que o utilizador queira navegar ou explorar. Além disso, se o seu produto fornecer um contentor, mesmo que não seja um contentor multinível, faz sentido implementar um fornecedor Windows PowerShell. Por exemplo, pode querer implementar um fornecedor de contentores Windows PowerShell se o verbo cmdlet Copiar, Mover, Renomear, Novo ou Remover fizer sentido como operação no seu produto ou dados de configuração.
Os Caminhos do Windows PowerShell Identificam o Seu Fornecedor
O runtime do Windows PowerShell utiliza caminhos do Windows PowerShell para aceder ao fornecedor Windows PowerShell apropriado. Quando um cmdlet especifica um destes caminhos, o runtime sabe qual fornecedor usar para aceder ao armazenamento de dados associado. Estes caminhos incluem caminhos qualificados pelo condutor, caminhos qualificados pelo fornecedor, caminhos diretos pelo fornecedor e caminhos internos do fornecedor. Cada fornecedor de PowerShell para Windows deve suportar um ou mais destes caminhos.
Para mais informações sobre os caminhos do Windows PowerShell, veja Como Funciona o Windows PowerShell.
Definir um Percurso Drive-Qualified
Para permitir que o utilizador aceda a dados localizados numa unidade física, o seu fornecedor Windows PowerShell deve suportar um caminho qualificado para disco. Este caminho começa com o nome do disco seguido de dois pontos (:), por exemplo, mydrive:\abc\bar.
Definir um Percurso Provider-Qualified
Para permitir que o runtime do Windows PowerShell inicialize e desinicialize o fornecedor, o seu fornecedor Windows PowerShell deve suportar um caminho qualificado pelo fornecedor. Por exemplo, FileSystem::\uncshare\abc\bar é o caminho qualificado pelo fornecedor para o fornecedor de FileSystem fornecido pelo Windows PowerShell.
Definir um Percurso Provider-Direct
Para permitir o acesso remoto ao seu fornecedor Windows PowerShell, deve suportar um caminho direto ao fornecedor para passar diretamente para o fornecedor Windows PowerShell para a localização atual. Por exemplo, o fornecedor PowerShell do registo do Windows pode usar \\server\regkeypath como um caminho direto ao fornecedor.
Definir um Percurso Provider-Internal
Para permitir que o cmdlet do fornecedor aceda a dados usando interfaces de programação de aplicações (APIs) que não sejam do Windows PowerShell, o seu fornecedor PowerShell do Windows deve suportar um caminho interno do fornecedor. Este percurso é indicado após o "::" no percurso qualificado pelo fornecedor. Por exemplo, o caminho interno do fornecedor para o fornecedor PowerShell do FileSystem do Windows é \\uncshare\abc\bar.
Alteração dos Dados Armazenados
Ao sobrepor métodos que modificam o armazenamento de dados subjacente, chame sempre o método System.Management.Automation.Provider.CmdletProvider.WriteItemObject* com a versão com data mais up-todo item alterada por esse método. A infraestrutura do fornecedor determina se o objeto item precisa de ser passado para o pipeline, como quando o utilizador especifica o parâmetro -PassThru. Se recuperar o item com data mais up-tofor uma operação dispendiosa (em termos de desempenho), pode testar a propriedade Context.PassThru para determinar se realmente precisa de escrever o item resultante.
Escolha uma Classe Base para o Seu Prestador
O Windows PowerShell fornece várias classes base que pode usar para implementar o seu próprio fornecedor Windows PowerShell. Ao desenhar um fornecedor, escolha a classe base, descrita nesta secção, que se adequa melhor às suas necessidades.
Cada classe base de fornecedor Windows PowerShell disponibiliza um conjunto de cmdlets. Esta secção descreve os cmdlets, mas não descreve os seus parâmetros.
Usando o estado da sessão, o runtime do Windows PowerShell disponibiliza vários cmdlets de localização para certos fornecedores do Windows PowerShell, como os Get-Locationcmdlets , Set-Location, Pop-Location, e Push-Location cmdlets. Pode usar o Get-Help cmdlet para obter informações sobre estes cmdlets de localização.
Classe Base CmdletProvider
A classe System.Management.Automation.Provider.CmdletProvider define um fornecedor básico de PowerShell para Windows. Esta classe suporta a declaração do fornecedor e fornece várias propriedades e métodos disponíveis para todos os fornecedores Windows PowerShell.
A classe é invocada pelo Get-PSProvider cmdlet para listar todos os prestadores disponíveis para uma sessão.
A implementação deste cmdlet é fornecida pelo estado da sessão.
Observação
Os fornecedores de PowerShell do Windows estão disponíveis para todos os escopos da linguagem PowerShell do Windows.
DriveCmdletProvider Classe Base
A classe System.Management.Automation.Provider.DriveCmdletProvider define um fornecedor de unidades Windows PowerShell que suporta operações para adicionar novas unidades, remover unidades existentes e inicializar unidades por defeito. Por exemplo, o fornecedor de FileSystem fornecido pelo Windows PowerShell inicializa os discos para todos os volumes montados, como discos rígidos e drives de CD/DVD.
Esta classe deriva da classe base System.Management.Automation.Provider.CmdletProvider . A tabela seguinte lista os cmdlets expostos por esta classe. Além dos listados, o Get-PSDrive cmdlet (exposto pelo estado da sessão) é um cmdlet relacionado que é usado para recuperar discos disponíveis.
| Cmdlet | Definition |
|---|---|
New-PSDrive |
Cria um novo disco para a sessão e transmite a informação do disco. |
Remove-PSDrive |
Remove um disco da sessão. |
ItemCmdletProvider Classe Base
A classe System.Management.Automation.Provider.ItemCmdletProvider define um fornecedor de itens Windows PowerShell que realiza operações sobre os itens individuais do armazenamento de dados, e não assume quaisquer capacidades de contentor ou navegação. Esta classe deriva da classe base System.Management.Automation.Provider.DriveCmdletProvider . A tabela seguinte lista os cmdlets expostos por esta classe.
| Cmdlet | Definition |
|---|---|
Clear-Item |
Limpa o conteúdo atual dos itens no local especificado e substitui-lo pelo valor "limpo" especificado pelo fornecedor. Este cmdlet não passa um objeto de saída pelo pipeline a menos que o seu PassThru parâmetro seja especificado. |
Get-Item |
Recupera itens da localização especificada e transmite os objetos resultantes. |
Invoke-Item |
Invoca a ação padrão do item no caminho especificado. |
Set-Item |
Coloca um item na localização especificada com o valor indicado. Este cmdlet não passa um objeto de saída pelo pipeline a menos que o seu PassThru parâmetro seja especificado. |
Resolve-Path |
Resolve os curingas para um caminho do Windows PowerShell e transmite a informação do caminho. |
Test-Path |
Testa o caminho especificado e devolve true se este existir ou false de outra forma. Este cmdlet é implementado para suportar o IsContainer parâmetro do método System.Management.Automation.Provider.CmdletProvider.WriteItemObject* . |
Classe Base ContainerCmdletProvider
A classe System.Management.Automation.Provider.ContainerCmdletProvider define um fornecedor de contentores Windows PowerShell que expõe um contentor para itens de armazenamento de dados ao utilizador. Tenha em atenção que um fornecedor de contentores Windows PowerShell só pode ser usado quando existe um contentor (sem containers aninhados) com itens dentro. Se existirem contentores aninhados, então deve implementar um fornecedor de navegação Windows PowerShell.
Esta classe deriva da classe base System.Management.Automation.Provider.ItemCmdletProvider . A tabela seguinte define os cmdlets implementados por esta classe.
| Cmdlet | Definition |
|---|---|
Copy-Item |
Copia itens de um local para outro. Este cmdlet não passa um objeto de saída pelo pipeline a menos que o seu PassThru parâmetro seja especificado. |
Get-ChildItem |
Recupera os itens filhos na localização especificada e transmite-os como objetos. |
New-Item |
Cria novos itens na localização especificada e transmite o objeto resultante. |
Remove-Item |
Remove itens do local especificado. |
Rename-Item |
Renomeia um item na localização especificada. Este cmdlet não passa um objeto de saída pelo pipeline a menos que o seu PassThru parâmetro seja especificado. |
Classe Base NavigationCmdletProvider
A classe System.Management.Automation.Provider.NavigationCmdletProvider define um fornecedor de navegação Windows PowerShell que realiza operações para itens que utilizam mais do que um contentor. Esta classe deriva da classe base System.Management.Automation.Provider.ContainerCmdletProvider . A tabela seguinte lista os cmdlets expostos por esta classe.
| Cmdlet | Definition |
|---|---|
Combine-Path |
Combina dois caminhos num único caminho, usando um delimitador específico do fornecedor entre caminhos. Este cmdlet transmite cordas. |
Move-Item |
Move os itens para o local especificado. Este cmdlet não passa um objeto de saída pelo pipeline a menos que o seu PassThru parâmetro seja especificado. |
Um cmdlet relacionado é o cmdlet básico de Parse-Path fornecido pelo Windows PowerShell. Este cmdlet pode ser usado para analisar um caminho PowerShell do Windows para suportar o Parent parâmetro. Transmite a cadeia de caminho do pai.
Selecione as Interfaces do Fornecedor para Suportar
Para além de derivar de uma das classes base do Windows PowerShell, o seu fornecedor Windows PowerShell pode suportar outras funcionalidades derivando de uma ou mais das seguintes interfaces de fornecedor. Esta secção define essas interfaces e os cmdlets suportados por cada uma. Não descreve os parâmetros para os cmdlets suportados pela interface. A informação dos parâmetros do cmdlet está disponível online através dos Get-Command cmdlets e (e Get-Help cmdlets).
IContentCmdletProvider
A interface System.Management.Automation.Provider.IContentCmdletProvider define um fornecedor de conteúdo que realiza operações sobre o conteúdo de um elemento de dados. A tabela seguinte lista os cmdlets expostos por esta interface.
| Cmdlet | Definition |
|---|---|
Add-Content |
Acrescenta os comprimentos de valor indicados ao conteúdo do item especificado. Este cmdlet não passa um objeto de saída pelo pipeline a menos que o seu PassThru parâmetro seja especificado. |
Clear-Content |
Define o conteúdo do item especificado para o valor "limpo". Este cmdlet não passa um objeto de saída pelo pipeline a menos que o seu PassThru parâmetro seja especificado. |
Get-Content |
Recupera o conteúdo dos itens especificados e transmite os objetos resultantes. |
Set-Content |
Substitui o conteúdo existente pelos itens especificados. Este cmdlet não passa um objeto de saída pelo pipeline a menos que o seu PassThru parâmetro seja especificado. |
IPropertyCmdletProvider
A interface System.Management.Automation.Provider.IPropertyCmdletProvider define uma propriedade do fornecedor Windows PowerShell que realiza operações sobre as propriedades dos itens no armazenamento de dados. A tabela seguinte lista os cmdlets expostos por esta interface.
Observação
O Path parâmetro nestes cmdlets indica um caminho para um item em vez de identificar uma propriedade.
| Cmdlet | Definition |
|---|---|
Clear-ItemProperty |
Define as propriedades dos itens especificados para o valor "limpo". Este cmdlet não passa um objeto de saída pelo pipeline a menos que o seu PassThru parâmetro seja especificado. |
Get-ItemProperty |
Recupera propriedades dos itens especificados e transmite os objetos resultantes. |
Set-ItemProperty |
Define as propriedades dos itens especificados com os valores indicados. Este cmdlet não passa um objeto de saída pelo pipeline a menos que o seu PassThru parâmetro seja especificado. |
IDynamicPropertyCmdletProvider
A interface System.Management.Automation.Provider.IDynamicPropertyCmdletProvider , derivada de System.Management.Automation.Provider.IPropertyCmdletProvider, define um fornecedor que especifica parâmetros dinâmicos para os seus cmdlets suportados. Este tipo de fornecedor trata de operações para as quais propriedades podem ser definidas em tempo de execução, por exemplo, uma nova operação de propriedade. Tais operações não são possíveis em itens com propriedades estaticamente definidas. A tabela seguinte lista os cmdlets expostos por esta interface.
| Cmdlet | Definition |
|---|---|
Copy-ItemProperty |
Copia uma propriedade do item especificado para outro item. Este cmdlet não passa um objeto de saída pelo pipeline a menos que o seu PassThru parâmetro seja especificado. |
Move-ItemProperty |
Move uma propriedade do item especificado para outro item. Este cmdlet não passa um objeto de saída pelo pipeline a menos que o seu PassThru parâmetro seja especificado. |
New-ItemProperty |
Cria uma propriedade nos itens especificados e transmite os objetos resultantes. |
Remove-ItemProperty |
Remove uma propriedade para os itens especificados. |
Rename-ItemProperty |
Renomeia uma propriedade dos itens especificados. Este cmdlet não passa um objeto de saída pelo pipeline a menos que o seu PassThru parâmetro seja especificado. |
ISecurityDescriptorCmdletProvider
A interface System.Management.Automation.Provider.ISecurityDescriptorCmdletProvider adiciona funcionalidade de descritores de segurança a um fornecedor. Esta interface permite ao utilizador obter e definir informações de descritores de segurança para um item no armazenamento de dados. A tabela seguinte lista os cmdlets expostos por esta interface.
| Cmdlet | Definition |
|---|---|
Get-Acl |
Recupera a informação contida numa lista de controlo de acesso (ACL), que faz parte de um descritor de segurança usado para proteger recursos do sistema operativo, por exemplo, um ficheiro ou um objeto. |
Set-Acl |
Define a informação para um ACL. É na forma de uma instância de System.Security.AccessControl.ObjectSecurity nos itens designados para o caminho especificado. Este cmdlet pode definir informações sobre ficheiros, chaves e subchaves no registo, ou qualquer outro item do fornecedor, se o fornecedor Windows PowerShell suportar a definição de informação de segurança. |
Ver também
Criação de Fornecedores Windows PowerShell