O que é psprovider no PowerShell?

O que é psprovider no PowerShell?

Sou novo no PowerShell e estou tentando entender o conceito de psprovider. Eu sei que posso usar Get-PSProviderparamostrar uma lista de provedores de ps disponíveis

Toda a ajuda que estou encontrando pressupõe que sei coisas que não sei. Procurando uma explicação básica do psprovider.

Responder1

Isto vem do arquivo de ajuda do Get-PSProvider:

Among other things, Windows PowerShell providers determine which 
data stores you can navigate through.

Existem dois conceitos principais enterrados aqui. O primeiro é o conceito de armazenamento de dados ou, se preferir, de contêiner. O segundo é o conceito de navegação.

O conceito de armazenamento de dados é básico para operar com dados. Se você já trabalhou com scripts ou programação, está familiarizado com variáveis. Na verdade, as variáveis ​​são um dos tipos de armazenamento de dados listados por Get-PSProvider. Se você já trabalhou com bancos de dados ou sites, está familiarizado com outros tipos de armazenamento de dados. Um segundo tipo de armazenamento de dados navegável listado para você é um sistema de arquivos. Se você já trabalhou com o Windows, está familiarizado com pastas e arquivos e até mesmo com a navegação por pastas e subpastas. As pastas são chamadas de diretórios no Powershell, mas é o mesmo conceito.

O Registro é um tipo diferente de armazenamento de dados.

O que é novo para mim, e talvez para você, é a ideia de generalizar todos esses diferentes tipos de armazenamento de dados em uma superclasse geral e, em seguida, definir certas operações em toda a superclasse.

Por exemplo, Get-ChildItem é uma operação básica de navegação que permite percorrer uma árvore de contêineres organizados em uma hierarquia. Mas em vez de implementar um GCI especializado para arquivos, outro para entradas do Registro, outro para variáveis ​​e assim por diante, eles optaram por implementar um único GCI que pudesse ser adaptado para uso com qualquer um desses três e vários outros.

Este é apenas o começo dos conceitos, mas espero que ajude.

Responder2

PSProviders são basicamente armazenamentos de dados. você pode lidar com isso como uma pasta normal do sistema de dados. get-psprovidersvocê receberá uma lista de todos os psproviders.

exemplo: com cmd.exeele não foi possível alterar sua localização atual para o Cadastro. você teve a possibilidade de alterar as configurações do registro com o cmd, mas não pode lidar com isso como um diretório ou cdpara o registro.

no PowerShell, o Registro é um PSProvider. significa que você pode acessá-lo como uma pasta do sistema de dados. se você digitar, cd hklm:estará dentro do registro da máquina local e poderá acessar seu conteúdo comGet-ChildItem

isso tem a vantagem de poder fornecer, por exemplo, PSDrives que realmente apontam para o registro.

New-PSDrive -name G -PSProvider Registry -Root HKCU:\Software

A unidade G:\ agora está mapeada para Usuário Atual > Registro de Software. (somente para a PSSession atual)

Existem muitas funcionalidades que você pode realizar com PSProviders. você deve executar e ler get-help about_providerspara obter mais informações.

informação relacionada