Partilhar via


about_Providers

Breve descrição

Descreve como os fornecedores do PowerShell fornecem acesso a dados e componentes que de outra forma não seriam facilmente acessíveis na linha de comandos. Os dados são apresentados num formato consistente que se assemelha a uma unidade do sistema de ficheiros.

Descrição longa

Os fornecedores do PowerShell são programas .NET que fornecem acesso a arquivos de dados especializados para facilitar a visualização e gestão. Os dados são apresentados numa unidade e acede aos dados num caminho como faria numa unidade de disco rígido. Pode utilizar qualquer um dos cmdlets incorporados que o fornecedor suporta para gerir os dados na unidade do fornecedor. Além disso, pode utilizar cmdlets personalizados concebidos especialmente para os dados.

Os fornecedores também podem adicionar parâmetros dinâmicos aos cmdlets incorporados. Estes parâmetros só estão disponíveis quando utiliza o cmdlet com os dados do fornecedor.

Fornecedores incorporados

O PowerShell inclui um conjunto de fornecedores incorporados que fornecem acesso a diferentes tipos de objetos.

  • Fornecedor de alias
    • Unidade - Alias:
    • Tipos de objeto - System.Management.Automation.AliasInfo
  • Fornecedor de certificados
    • Unidade - Cert:
    • Tipos de objeto - Microsoft.PowerShell.Commands.X509StoreLocation, System.Security.Cryptography.X509Certificates.X509Certificate2
  • Fornecedor de ambiente
    • Unidade - Env:
    • Tipos de objeto - System.Collections.DictionaryEntry
  • Fornecedor fileSystem
    • Unidade - C: e outra dependendo do hardware
    • Tipos de objeto - System.IO.FileInfo, System.IO.DirectoryInfo
  • Fornecedor de funções
    • Unidade - Function:
    • Tipos de objeto - System.Management.Automation.FunctionInfo
  • Fornecedor de registo
    • Unidade - HKLM:, HKCU:
    • Tipos de objeto - Microsoft.Win32.RegistryKey
  • Fornecedor de variáveis
    • Unidade - Variable:
    • Tipos de objeto - System.Management.Automation.PSVariable
  • Fornecedor WSMan
    • Unidade - WSMan:
    • Tipos de objeto - Microsoft.WSMan.Management.WSManConfigContainerElement

Também pode criar os seus próprios fornecedores do PowerShell e instalar fornecedores que outras pessoas desenvolvam. Para listar os fornecedores que estão disponíveis na sua sessão, escreva:

Get-PSProvider

Nota

Os fornecedores de Certificado, Registo e WSMan só estão disponíveis na plataforma do Windows.

Instalar e remover fornecedores

Normalmente, os fornecedores são instalados através de módulos do PowerShell. Importar o módulo carrega o fornecedor para a sua sessão. Não pode desinstalar os fornecedores incorporados. Pode desinstalar fornecedores carregados por outros módulos.

Pode descarregar um fornecedor da sessão atual com o Remove-Module cmdlet. Este cmdlet não desinstala o fornecedor, mas torna o fornecedor indisponível na sessão.

Também pode utilizar o Remove-PSDrive cmdlet para remover qualquer unidade da sessão atual. Estes dados na unidade não são afetados, mas a unidade já não está disponível nessa sessão.

Ver fornecedores

Para ver os fornecedores do PowerShell no seu computador, escreva:

Get-PSProvider

O resultado lista os fornecedores incorporados e os fornecedores que adicionou à sessão.

Os cmdlets do fornecedor

Os seguintes cmdlets foram concebidos para funcionar com os dados expostos por qualquer fornecedor. Pode utilizar os mesmos cmdlets da mesma forma para gerir os diferentes tipos de dados que os fornecedores expõem. Depois de aprender a gerir os dados de um fornecedor, pode utilizar os mesmos procedimentos com os dados de qualquer fornecedor.

Por exemplo, o New-Item cmdlet cria um novo item. C: Na unidade suportada pelo fornecedor fileSystem, pode utilizar New-Item para criar um novo ficheiro ou pasta. Nas unidades suportadas pelo fornecedor de Registo , pode utilizar New-Item para criar uma nova chave de registo. Alias: Na unidade, pode utilizar New-Item para criar um novo alias.

Para obter informações detalhadas sobre qualquer um dos seguintes cmdlets, escreva:

Get-Help <cmdlet-name> -Detailed

Cmdlets ChildItem

Cmdlets de Conteúdo

Item Cmdlets

Cmdlets ItemProperty

Cmdlets de localização

Cmdlets de caminho

Cmdlets do PSDrive

PSProvider Cmdlets

Ver dados do fornecedor

O principal benefício de um fornecedor é expor os seus dados de uma forma familiar e consistente. O modelo de apresentação de dados é uma unidade do sistema de ficheiros.

O fornecedor permite-lhe ver, navegar e alterar itens no arquivo de dados como se fossem dados num sistema de ficheiros. O arquivo de dados é acedido pelo nome da unidade que suporta.

A unidade está listada na apresentação predefinida do Get-PSProvider cmdlet, mas pode obter informações sobre a unidade do fornecedor com o Get-PSDrive cmdlet . Por exemplo, para obter todas as propriedades da unidade Function: , escreva:

Get-PSDrive Function | Format-List *

Pode ver e mover-se pelos dados numa unidade de fornecedor, tal como faria numa unidade do sistema de ficheiros.

Para ver o conteúdo de uma unidade de fornecedor, utilize os Get-Item cmdlets ou Get-ChildItem . Escreva o nome da unidade seguido de dois pontos (:). Por exemplo, para ver o conteúdo da Alias: unidade, escreva:

Get-Item alias:

Pode ver e gerir os dados em qualquer unidade a partir de outra unidade, incluindo o nome da unidade no caminho. Por exemplo, para ver a HKLM\Software chave de registo na unidade a HKLM: partir de outra unidade, escreva:

Get-ChildItem HKLM:\SOFTWARE\

Para abrir a unidade, utilize o Set-Location cmdlet . Lembre-se dos dois pontos quando especificar o caminho da unidade. Por exemplo, para alterar a sua localização para o diretório de raiz da Cert: unidade, escreva:

Set-Location cert:

Em seguida, para ver o conteúdo da Cert: unidade, escreva:

Get-ChildItem

Mover-se através de dados hierárquicos

Pode mover-se através de uma unidade de fornecedor tal como faria com uma unidade de disco rígido. Se os dados estiverem dispostos numa hierarquia de itens dentro de itens, utilize uma barra invertida (\) para indicar um item subordinado. Utilize o seguinte formato:

drive:\location\child-location\...

Por exemplo, para alterar a sua localização para a chave de HKLM\Software registo, escreva um Set-Location comando, como:

Set-Location HKLM:\SOFTWARE\

Se qualquer elemento no nome completamente qualificado incluir espaços, tem de colocar o nome entre aspas ("). O exemplo seguinte mostra um caminho completamente qualificado que inclui espaços.

"C:\Program Files\Internet Explorer\iexplore.exe"

Também pode utilizar referências relativas a localizações. Um ponto (.) representa a localização atual. Por exemplo, se estiver na chave do HKLM:\Software\Microsoft registo e quiser listar as subchaves de registo na HKLM:\Software\Microsoft\PowerShell chave, escreva o seguinte comando:

Get-ChildItem .\PowerShell

Além disso, os pontos duplos (..) referem-se ao diretório ou contentor diretamente acima da sua localização atual. Pode utilizar pontos duplos (..) para navegar numa hierarquia de fornecedores.

PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\> cd ..\..\LanmanWorkstation\Parameters
PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters>

Home Page do Fornecedor

Os fornecedores também têm uma localização Home Page . Esta localização é partilhada por todos os PSDrives fornecedores. Pode ser obtido ao ver a propriedade Home Page do fornecedor.

Get-PSProvider | Format-Table Name, Home
Name        Home
----        ----
Registry
Alias
Environment
FileSystem  C:\Users\username
Function
Variable
Certificate

O fornecedor fileSystem é o único fornecedor que tem um valor predefinido para Home Page. É o mesmo valor $HOMEque . Para obter mais informações, veja about_Automatic_Variables.

Pode definir o diretório Home para um fornecedor, para a sessão atual, utilizando a respetiva propriedade.

(Get-PSProvider FileSystem).Home = "C:\"

O ~ caráter pode ser utilizado para representar o diretório raiz do fornecedor. Se o fornecedor não tiver uma localização Home Page definida, verá um erro.

Cert:\> Set-Location ~
Set-Location : Home location for this provider isn't set. To set the home
location, call "(get-psprovider 'Certificate').Home = 'path'".
At line:1 char:1
+ Set-Location ~
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Set-Location],
                              PSInvalidOperationException
...

Localizar parâmetros dinâmicos

Os parâmetros dinâmicos são parâmetros de cmdlet que são adicionados a um cmdlet por um fornecedor. Estes parâmetros só estão disponíveis quando o cmdlet é utilizado com o fornecedor que os adicionou.

Por exemplo, a Cert: unidade adiciona o parâmetro CodeSigningCert aos Get-Item cmdlets e Get-ChildItem . Só pode utilizar este parâmetro quando utilizar Get-Item ou Get-ChildItem na Cert: unidade.

Para obter uma lista dos parâmetros dinâmicos suportados por um fornecedor, veja o ficheiro de Ajuda do fornecedor. Escreva:

Get-Help <provider-name>

Por exemplo:

Get-Help certificate

Saiba mais sobre fornecedores

Apesar de todos os dados do fornecedor aparecerem em unidades e utilizar os mesmos métodos para os mover, a semelhança deixa de existir. Os arquivos de dados que o fornecedor expõe podem ser tão variados como as localizações do Active Directory e Microsoft Exchange Server caixas de correio.

Para obter informações sobre fornecedores individuais do PowerShell, escreva:

Get-Help <ProviderName>

Por exemplo:

Get-Help registry

Para obter uma lista de tópicos de Ajuda sobre os fornecedores, escreva:

Get-Help * -Category Provider

Ver também