O que é o psprovider no powershell?

3

Sou novo no PowerShell e estou tentando entender o conceito de psprovider. Eu sei que posso usar Get-PSProvider para mostrar uma lista de psproviders disponíveis

Toda a ajuda que estou encontrando assume que eu sei de coisas que não sei. Procurando por uma explicação básica do psprovider.

    
por James Jenkins 15.04.2016 / 15:10

2 respostas

4

Isso é 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 um armazenamento de dados ou, se preferir, um contêiner. O segundo é o conceito de navegação.

O conceito de armazenamento de dados é básico para operar em dados. Se você fez algum trabalho com scripts ou programação, está familiarizado com variáveis. Na verdade, as variáveis são um dos tipos de armazenamentos de dados listados por Get-PSProvider. Se você fez algum trabalho com bancos de dados ou sites, está familiarizado com outros tipos de armazenamentos de dados. Um segundo tipo de armazenamento de dados navegável listado para você é um sistema de arquivos. Se você fez algum trabalho 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 há de novo para mim, e talvez para você, é a idéia de generalizar todos esses diferentes tipos de armazenamentos de dados em uma superclasse geral e, em seguida, definir certas operações em toda a superclasse.

Por exemplo, Get-ChildItem é uma operação de navegação básica que permite percorrer uma árvore de contêineres organizados em uma hierarquia. Mas em vez de implementar um GCI especializado para arquivos, e outro para entradas do Registro, e outro para variáveis, e assim por diante, eles escolheram 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.

    
por 11.10.2016 / 13:26
3

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

exemplo: com cmd.exe não foi possível alterar sua localização atual para o Registro. você tinha a possibilidade de alterar as configurações do registro com o cmd, mas você não pode manipulá-lo como um diretório ou cd para 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: , na verdade, estará dentro do registro da máquina local e poderá acessar seu conteúdo com Get-ChildItem

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

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

O G: \ Drive agora está mapeado para o usuário atual > Registro de Software. (somente para a atual PSSession)

Existem muitas funcionalidades que você pode fazer com o PSProviders. você deve executar e ler get-help about_providers para mais informações.

    
por 15.04.2016 / 15:26