Поделиться через


about_Providers

Краткое описание

Описывает, как поставщики PowerShell предоставляют доступ к данным и компонентам, которые в противном случае не были бы легко доступны в командной строке. Данные представлены в единообразном формате, который напоминает диск с файловой системой.

Подробное описание

Поставщики PowerShell — это программы .NET, которые предоставляют доступ к специализированным хранилищам данных для упрощения просмотра и управления. Данные отображаются на диске, и вы обращаетесь к данным по пути, как на жестком диске. Для управления данными на диске поставщика можно использовать любой из встроенных командлетов, поддерживаемых поставщиком. Кроме того, можно использовать пользовательские командлеты, разработанные специально для данных.

Поставщики также могут добавлять динамические параметры во встроенные командлеты. Эти параметры доступны только при использовании командлета с данными поставщика.

Встроенные поставщики

PowerShell включает набор встроенных поставщиков, которые предоставляют доступ к различным типам объектов.

  • Поставщик псевдонимов
    • Диске- Alias:
    • Типы объектов — System.Management.Automation.AliasInfo
  • Поставщик сертификатов
    • Диске- Cert:
    • Типы объектов — Microsoft.PowerShell.Commands.X509StoreLocation, System.Security.Cryptography.X509Certificates.X509Certificate2
  • Поставщик среды
    • Диске- Env:
    • Типы объектов — System.Collections.DictionaryEntry
  • Поставщик файловой системы
    • Диск — C: и другое в зависимости от оборудования
    • Типы объектов — System.IO.FileInfo, System.IO.DirectoryInfo
  • Поставщик функций
    • Диске- Function:
    • Типы объектов — System.Management.Automation.FunctionInfo
  • Поставщик реестра
    • Диск — HKLM:, HKCU:
    • Типы объектов — Microsoft.Win32.RegistryKey
  • Поставщик переменных
    • Диске- Variable:
    • Типы объектов — System.Management.Automation.PSVariable
  • Поставщик WSMan
    • Диске- WSMan:
    • Типы объектов — Microsoft.WSMan.Management.WSManConfigContainerElement

Вы также можете создавать собственные поставщики PowerShell и устанавливать поставщики, которые разрабатывают другие пользователи. Чтобы получить список поставщиков, доступных в сеансе, введите:

Get-PSProvider

Примечание

Поставщики сертификатов, реестра и WSMan доступны только на платформе Windows.

Установка и удаление поставщиков

Поставщики обычно устанавливаются с помощью модулей PowerShell. При импорте модуля поставщик загружается в сеанс. Вы не можете удалить встроенные поставщики. Вы можете удалить поставщиков, загруженных другими модулями.

Поставщик можно выгрузить из текущего сеанса с помощью командлета Remove-Module . Этот командлет не удаляет поставщика, но делает его недоступным в сеансе.

Командлет также можно использовать для Remove-PSDrive удаления любого диска из текущего сеанса. Эти данные на диске не затрагиваются, но диск больше недоступен в этом сеансе.

Просмотр поставщиков

Чтобы просмотреть поставщики PowerShell на компьютере, введите:

Get-PSProvider

В выходных данных перечислены встроенные поставщики и поставщики, добавленные в сеанс.

Командлеты поставщика

Следующие командлеты предназначены для работы с данными, предоставляемыми любым поставщиком. Одни и те же командлеты можно использовать одинаково для управления различными типами данных, предоставляемыми поставщиками. После того как вы научитесь управлять данными одного поставщика, вы можете использовать те же процедуры с данными от любого поставщика.

Например, New-Item командлет создает новый элемент. C: На диске, поддерживаемом поставщиком FileSystem, можно использовать для New-Item создания нового файла или папки. На дисках, поддерживаемых поставщиком реестра , можно использовать для New-Item создания нового раздела реестра. Alias: На диске можно использовать для New-Item создания нового псевдонима.

Для получения подробных сведений о любом из следующих командлетов введите:

Get-Help <cmdlet-name> -Detailed

Командлеты ChildItem

Командлеты содержимого

Командлеты элементов

Командлеты ItemProperty

Командлеты расположения

Командлеты пути

Командлеты PSDrive

Командлеты PSProvider

Просмотр данных поставщика

Основное преимущество поставщика заключается в том, что он предоставляет свои данные знакомым и согласованным образом. Моделью представления данных является диск файловой системы.

Поставщик позволяет просматривать, перемещаться и изменять элементы в хранилище данных, как если бы они были данными в файловой системе. Доступ к хранилищу данных осуществляется по имени диска, который оно поддерживает.

Диск отображается в стандартном отображении командлета Get-PSProvider , но сведения о диске поставщика можно получить с помощью командлета Get-PSDrive . Например, чтобы получить все свойства диска Function: , введите:

Get-PSDrive Function | Format-List *

Вы можете просматривать и перемещать данные на диске поставщика так же, как и на диске файловой системы.

Чтобы просмотреть содержимое диска поставщика, используйте Get-Item командлеты или Get-ChildItem . Введите имя диска, за которым следует двоеточие (:). Например, чтобы просмотреть содержимое диска, введите Alias: :

Get-Item alias:

Вы можете просматривать данные на любом диске с другого диска и управлять ими, включив имя диска в путь. Например, чтобы просмотреть HKLM\Software раздел реестра на диске с другого HKLM: диска, введите:

Get-ChildItem HKLM:\SOFTWARE\

Чтобы открыть диск, используйте Set-Location командлет . Запомните двоеточие при указании пути к диску. Например, чтобы изменить расположение на корневой каталог диска, введите Cert: :

Set-Location cert:

Затем, чтобы просмотреть содержимое диска, введите Cert: :

Get-ChildItem

Перемещение по иерархическим данным

Вы можете перемещаться через диск поставщика так же, как и жесткий диск. Если данные расположены в иерархии элементов внутри элементов, используйте обратную косую черту (\), чтобы указать дочерний элемент. Используйте следующий формат:

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

Например, чтобы изменить расположение на HKLM\Software раздел реестра, введите Set-Location команду, например:

Set-Location HKLM:\SOFTWARE\

Если какой-либо элемент в полном имени содержит пробелы, необходимо заключить имя в двойные кавычки ("). В следующем примере показан полный путь, включающий пробелы.

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

Можно также использовать относительные ссылки на расположения. Точка (.) представляет текущее расположение. Например, если вы находитесь в HKLM:\Software\Microsoft разделе реестра и хотите получить список подразделов реестра в разделе , введите HKLM:\Software\Microsoft\PowerShell следующую команду:

Get-ChildItem .\PowerShell

Кроме того, двухточие (..) ссылается на каталог или контейнер непосредственно над текущим расположением. Для перехода по иерархии поставщиков можно использовать двойные точки (..).

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

Домашняя страница поставщика

Поставщики также имеют домашнее расположение. Это расположение является общим для всех PSDrives , поддерживаемых поставщиком. Его можно получить, просмотрев свойство Home поставщика.

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

Поставщик FileSystem является единственным поставщиком, который имеет значение по умолчанию для Home. Это то же значение, что и $HOME. Дополнительные сведения см. в статье about_Automatic_Variables.

Вы можете задать каталог Home для поставщика для текущего сеанса с помощью его свойства .

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

Символ ~ можно использовать для представления домашнего каталога поставщика. Если у поставщика не задано домашнее расположение, отображается сообщение об ошибке.

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
...

Поиск динамических параметров

Динамические параметры — это параметры командлета, которые добавляются в командлет поставщиком. Эти параметры доступны, только если командлет используется с поставщиком, который их добавил.

Например, Cert: диск добавляет параметр CodeSigningCert в Get-Item командлеты и Get-ChildItem . Этот параметр можно использовать только при использовании Get-Item или Get-ChildItem на Cert: диске.

Список динамических параметров, поддерживаемых поставщиком, см. в файле справки для поставщика. Тип:

Get-Help <provider-name>

Пример:

Get-Help certificate

Сведения о поставщиках

Хотя все данные поставщика отображаются на дисках и вы используете одни и те же методы для перемещения по ним, сходство на этом останавливается. Хранилища данных, предоставляемые поставщиком, могут быть столь же разнообразными, как расположения Active Directory и Microsoft Exchange Server почтовые ящики.

Для получения сведений об отдельных поставщиках PowerShell введите:

Get-Help <ProviderName>

Пример:

Get-Help registry

Чтобы получить список разделов справки о поставщиках, введите:

Get-Help * -Category Provider

См. также раздел