Это из файла справки для Get-PSProvider:
Among other things, Windows PowerShell providers determine which
data stores you can navigate through.
Здесь похоронены две основные концепции. Первый - это концепция хранилища данных или, если хотите, контейнера. Второе - это концепция навигации.
Концепция хранилища данных является основной для работы с данными. Если вы уже работали со скриптами или программированием, вы знакомы с переменными. Фактически, переменные являются одним из видов хранилищ данных, перечисленных Get-PSProvider. Если вы уже работали с базами данных или веб-сайтами, вы знакомы с другими видами хранилищ данных. Второй тип хранилищ данных, доступных для навигации, - это файловая система. Если вы уже работали с Windows, вы знакомы с папками и файлами, и даже с навигацией по папкам и подпапкам. Папки в Powershell называются каталогами, но это та же концепция.
Реестр - это другой тип хранилища данных.
Новым для меня и, возможно, для вас является идея обобщения всех этих различных типов хранилищ данных в общий суперкласс, а затем определение определенных операций над всем суперклассом.
Например, Get-ChildItem - это базовая операция навигации, которая позволяет вам обходить дерево контейнеров, расположенных в иерархии. Но вместо реализации специализированного GCI для файлов, другого для записей реестра, другого для переменных и т.д. Они решили реализовать один GCI, который можно адаптировать для использования с любым из этих трех и несколькими другими.
Это только начало концепции, но я надеюсь, что это поможет.