Compartilhar via


about_Providers

Descrição curta

Descreve como os provedores do PowerShell fornecem acesso a dados e componentes que não seriam facilmente acessíveis na linha de comando. Os dados são apresentados em um formato consistente que se assemelha a uma unidade do sistema de arquivos.

Descrição longa

Os provedores do PowerShell são programas .NET que fornecem acesso a armazenamentos de dados especializados para facilitar a exibição e o gerenciamento. Os dados são exibidos em uma unidade e você acessa os dados em um caminho como faria em uma unidade de disco rígido. Você pode usar qualquer um dos cmdlets internos aos quais o provedor dá suporte para gerenciar os dados na unidade do provedor. Além disso, você pode usar cmdlets personalizados que são projetados especialmente para os dados.

Os provedores também podem adicionar parâmetros dinâmicos aos cmdlets internos. Esses parâmetros só estão disponíveis quando você usa o cmdlet com os dados do provedor.

Provedores internos

O PowerShell inclui um conjunto de provedores internos que fornecem acesso a diferentes tipos de objetos.

  • provedor de do Alias
    • Unidade – Alias:
    • Tipos de objeto - System.Management.Automation.AliasInfo
  • Provedor de de Certificado
    • Unidade – Cert:
    • Tipos de objeto - Microsoft.PowerShell.Commands.X509StoreLocation, System.Security.Cryptography.X509Certificates.X509Certificate2
  • provedor de de Ambiente
    • Unidade – Env:
    • Tipos de objeto - System.Collections.DictionaryEntry
  • provedor de do FileSystem
    • Unidade – C: e outros, dependendo do hardware
    • Tipos de objeto – System.IO.FileInfo, System.IO.DirectoryInfo
  • provedor de de funções do
    • Unidade – Function:
    • Tipos de objeto – System.Management.Automation.FunctionInfo
  • provedor de do Registro
    • Unidade – HKLM:, HKCU:
    • Tipos de objeto - Microsoft.Win32.RegistryKey
  • provedor de variável
    • Unidade – Variable:
    • Tipos de objeto – System.Management.Automation.PSVariable
  • provedor de do WSMan
    • Unidade – WSMan:
    • Tipos de objeto - Microsoft.WSMan.Management.WSManConfigContainerElement

Você também pode criar seus próprios provedores do PowerShell e instalar provedores que outras pessoas desenvolvem. Para listar os provedores disponíveis em sua sessão, digite:

Get-PSProvider

Nota

Os provedores de Certificado, Registroe WSMan só estão disponíveis na plataforma Windows.

Instalando e removendo provedores

Normalmente, os provedores são instalados por meio de módulos do PowerShell. A importação do módulo carrega o provedor em sua sessão. Você não pode desinstalar os provedores internos. Você pode desinstalar provedores carregados por outros módulos.

Você pode descarregar um provedor da sessão atual usando o cmdlet Remove-Module. Esse cmdlet não desinstala o provedor, mas torna o provedor indisponível na sessão.

Você também pode usar o cmdlet Remove-PSDrive para remover qualquer unidade da sessão atual. Esses dados na unidade não são afetados, mas a unidade não está mais disponível nessa sessão.

Exibindo provedores

Para exibir os provedores do PowerShell em seu computador, digite:

Get-PSProvider

A saída lista os provedores internos e os provedores que você adicionou à sessão.

Os cmdlets do provedor

Os cmdlets a seguir são projetados para trabalhar com os dados expostos por qualquer provedor. Você pode usar os mesmos cmdlets da mesma maneira para gerenciar os diferentes tipos de dados que os provedores expõem. Depois de aprender a gerenciar os dados de um provedor, você pode usar os mesmos procedimentos com os dados de qualquer provedor.

Por exemplo, o cmdlet New-Item cria um novo item. Na unidade de C: compatível com o provedor FileSystem, você pode usar New-Item para criar um novo arquivo ou pasta. Nas unidades compatíveis com o provedor Registry, você pode usar New-Item para criar uma nova chave do Registro. Na unidade de Alias:, você pode usar New-Item para criar um novo alias.

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

Get-Help <cmdlet-name> -Detailed

Cmdlets ChildItem

Cmdlets de conteúdo

  • de Adição de Conteúdo
  • clear-content
  • get-content
  • set-content

Item Cmdlets

Cmdlets ItemProperty

Cmdlets de localização

  • get-location
  • pop-location
  • de localização por push
  • set-location

Cmdlets de caminho

  • de junção de caminho
  • convert-path
  • de caminho dividido
  • resolve-caminho
  • de caminho de teste

Cmdlets do PSDrive

PSProvider Cmdlets

  • Get-PSProvider

Exibindo dados do provedor

O principal benefício de um provedor é que ele expõe seus dados de maneira familiar e consistente. O modelo de apresentação de dados é uma unidade do sistema de arquivos.

O provedor permite que você exiba, navegue e altere itens no armazenamento de dados como se fossem dados em um sistema de arquivos. O armazenamento de dados é acessado pelo nome da unidade que ele dá suporte.

A unidade está listada na exibição padrão do cmdlet Get-PSProvider, mas você pode obter informações sobre a unidade do provedor usando o cmdlet Get-PSDrive. Por exemplo, para obter todas as propriedades da função: unidade, digite:

Get-PSDrive Function | Format-List *

Você pode exibir e mover os dados em uma unidade do provedor da mesma forma que faria em uma unidade do sistema de arquivos.

Para exibir o conteúdo de uma unidade de provedor, use os cmdlets Get-Item ou Get-ChildItem. Digite o nome da unidade seguido por dois-pontos (:). Por exemplo, para exibir o conteúdo da unidade Alias:, digite:

Get-Item Alias:

Você pode exibir e gerenciar os dados em qualquer unidade de outra unidade, incluindo o nome da unidade no caminho. Por exemplo, para exibir a chave do Registro HKLM\Software na unidade HKLM: de outra unidade, digite:

Get-ChildItem HKLM:\SOFTWARE\

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

Set-Location Cert:

Em seguida, para exibir o conteúdo da unidade de Cert:, digite:

Get-ChildItem

Movendo dados hierárquicos

Você pode mover-se por uma unidade de provedor da mesma forma que faria com uma unidade de disco rígido. Se os dados forem organizados em uma hierarquia de itens dentro de itens, use uma barra invertida (\) para indicar um item filho. Use o seguinte formato:

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

Por exemplo, para alterar sua localização para a chave do Registro HKLM\Software, digite um comando Set-Location, como:

Set-Location HKLM:\SOFTWARE\

Se qualquer elemento no nome totalmente qualificado incluir espaços, você deverá colocar o nome entre aspas duplas ("). O exemplo a seguir mostra um caminho totalmente qualificado que inclui espaços.

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

Você também pode usar referências relativas a locais. Um ponto (.) representa o local atual. Por exemplo, se você estiver na chave do registro HKLM:\Software\Microsoft e quiser listar as subchaves do Registro na chave HKLM:\Software\Microsoft\PowerShell, digite o seguinte comando:

Get-ChildItem .\PowerShell

Além disso, pontos duplos (..) referem-se ao diretório ou contêiner diretamente acima de sua localização atual. Você pode usar dois ponto (..) para navegar por uma hierarquia de provedor.

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

Página inicial do provedor

Os provedores também têm um local Home. Esse local é compartilhado por todos os PSDrives apoiados pelo provedor. Ele pode ser recuperado exibindo a propriedade Home do provedor.

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

O provedor FileSystem é o único provedor que tem um valor padrão para Home. É o mesmo valor que $HOME. Para obter mais informações, consulte about_Automatic_Variables.

Você pode definir o diretório Home para um provedor, para a sessão atual, usando sua propriedade.

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

O caractere ~ pode ser usado para representar o diretório base do provedor. Se o provedor não tiver um conjunto de localização de Página Inicial, você 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
...

Localizando parâmetros dinâmicos

Parâmetros dinâmicos são parâmetros de cmdlet que são adicionados a um cmdlet por um provedor. Esses parâmetros só estão disponíveis quando o cmdlet é usado com o provedor que os adicionou.

Por exemplo, a unidade Cert: adiciona o parâmetro CodeSigningCert aos cmdlets Get-Item e Get-ChildItem. Você só pode usar esse parâmetro quando usar Get-Item ou Get-ChildItem na unidade Cert:.

Para obter uma lista dos parâmetros dinâmicos aos quais um provedor dá suporte, consulte o arquivo de Ajuda para o provedor. Tipo:

Get-Help <provider-name>

Por exemplo:

Get-Help Certificate

Aprendendo sobre provedores

Embora todos os dados do provedor apareçam em unidades e você use os mesmos métodos para movê-los, a similaridade é interrompida por lá. Os armazenamentos de dados expostos pelo provedor podem ser tão variados quanto os locais do Active Directory e as caixas de correio do Microsoft Exchange Server.

Para obter informações sobre provedores individuais do PowerShell, digite:

Get-Help <ProviderName>

Por exemplo:

Get-Help Registry

Para obter uma lista de tópicos da Ajuda sobre os provedores, digite:

Get-Help * -Category Provider

Consulte também