Что такое psprovider в powershell?

Ответы:

4

Это из файла справки для Get-PSProvider:

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

Здесь похоронены две основные концепции. Первый - это концепция хранилища данных или, если хотите, контейнера. Второе - это концепция навигации.

Концепция хранилища данных является основной для работы с данными. Если вы уже работали со скриптами или программированием, вы знакомы с переменными. Фактически, переменные являются одним из видов хранилищ данных, перечисленных Get-PSProvider. Если вы уже работали с базами данных или веб-сайтами, вы знакомы с другими видами хранилищ данных. Второй тип хранилищ данных, доступных для навигации, - это файловая система. Если вы уже работали с Windows, вы знакомы с папками и файлами, и даже с навигацией по папкам и подпапкам. Папки в Powershell называются каталогами, но это та же концепция.

Реестр - это другой тип хранилища данных.

Новым для меня и, возможно, для вас является идея обобщения всех этих различных типов хранилищ данных в общий суперкласс, а затем определение определенных операций над всем суперклассом.

Например, Get-ChildItem - это базовая операция навигации, которая позволяет просматривать дерево контейнеров, расположенных в иерархии. Но вместо реализации специализированного GCI для файлов, другого для записей реестра, другого для переменных и т. Д. Они решили реализовать один GCI, который можно адаптировать для использования с любым из этих трех и несколькими другими.

Это только начало концепции, но я надеюсь, что это поможет.

Уолтер Митти
источник
3

PSProviders в основном хранилища данных. Вы можете обращаться с ними как с обычной папкой системы данных. get-psprovidersВы получите список всех psproviders.

пример: при cmd.exeэтом не было возможности изменить ваше текущее местоположение на Реестр. у вас была возможность изменить настройки реестра с помощью cmd, но вы не можете обращаться с ним как с каталогом или cdс реестром.

в PowerShell реестр является PSProvider. означает, что вы можете получить к нему доступ как папка системы данных. если вы наберете, cd hklm:вы на самом деле внутри реестра локальной машины, и можете получить доступ к его содержимому сGet-ChildItem

это дает то преимущество, что вы можете предоставить, например, PSDrives, которые фактически указывают на реестр.

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

Теперь диск G: \ сопоставлен с текущим пользователем> Реестр программного обеспечения. (только для текущей сессии PSSession)

Есть много функций, которые вы можете сделать с PSProviders. Вы должны выполнить и прочитать get-help about_providersдля получения дополнительной информации.

Симонс
источник