Создание поставщика свойств Windows PowerShell

В этом разделе описывается создание поставщика, который позволяет пользователю управлять свойствами элементов в хранилище данных. как следствие, этот тип поставщика называется поставщиком свойств Windows PowerShell. например, поставщик реестра, предоставляемый Windows PowerShell, обрабатывает значения разделов реестра как свойства элемента раздела реестра. Поставщик этого типа должен добавить интерфейс System. Management. Automation. Provider. ипропертикмдлетпровидер в реализацию класса .NET.

Примечание

Windows PowerShell предоставляет файл шаблона, который можно использовать для разработки Windows PowerShell поставщика. файл темплатепровидер. cs доступен в пакете Microsoft Windows Software Development Kit для компонентов среды выполнения Windows Vista и платформа .NET Framework 3,0. инструкции по загрузке см. в статье установка Windows PowerShell и загрузка пакета SDK для Windows PowerShell. Скачанный шаблон доступен в <PowerShell Samples> каталоге. необходимо создать копию этого файла и использовать копию для создания нового поставщика Windows PowerShell, удалив все ненужные функции. дополнительные сведения о других реализациях поставщиков Windows PowerShell см. в разделе разработка поставщика Windows PowerShell.

Внимание!

Методы поставщика свойств должны записывать любые объекты с помощью метода System. Management. Automation. Provider. кмдлетпровидер. вритепропертйобжект * .

определение поставщика Windows PowerShell

Поставщик свойств должен создать класс .NET, который поддерживает интерфейс System. Management. Automation. Provider. ипропертикмдлетпровидер . Ниже приведено объявление класса по умолчанию из файла Темплатепровидер. cs, предоставленного Windows PowerShell.

Определение базовых функций

Интерфейс System. Management. Automation. Provider. ипропертикмдлетпровидер можно подключить к любому из базовых классов поставщика, за исключением класса System. Management. Automation. Provider. дривекмдлетпровидер . Добавьте базовую функциональность, необходимую базовому классу, который вы используете. дополнительные сведения о базовых классах см. в разделе разработка поставщика Windows PowerShell.

Получение свойств

Чтобы получить свойства, поставщик должен реализовать метод System. Management. Automation. Provider. ипропертикмдлетпровидер., свойство * для поддержки вызовов из Get-ItemProperty командлета. Этот метод получает свойства элемента, расположенного по указанному поставщику — внутренний путь (полный).

providerSpecificPickListПараметр указывает, какие свойства следует извлечь. Если этот параметр имеет значение null или пуст, метод должен получить все свойства. Кроме того, System. Management. Automation. Provider. ипропертикмдлетпровидер. GetObject * записывает экземпляр объекта System. Management. Automation. PSObject , представляющий контейнер свойств извлеченных свойств. Метод должен возвращать Nothing.

Рекомендуется, чтобы реализация System. Management. Automation. Provider. ипропертикмдлетпровидер.-Property * поддерживала подстановочное расширение имен свойств для каждого элемента в списке выбора. Для этого используйте класс System. Management. Automation. вилдкардпаттерн , чтобы выполнить сопоставление шаблонов с подстановочными знаками.

Ниже приведена реализация класса System. Management. Automation. Provider. ипропертикмдлетпровидер.-Property * по умолчанию из файла темплатепровидер. cs, предоставленного Windows PowerShell.

Вопросы, которые следует учитывать при реализации функции Property

Следующие условия могут быть применимы к реализации System. Management. Automation. Provider. ипропертикмдлетпровидер. onproperty *:

Присоединение динамических параметров к командлету Get-ItemProperty

Get-ItemPropertyКомандлету могут потребоваться дополнительные параметры, заданные динамически во время выполнения. чтобы предоставить эти динамические параметры, поставщик свойств Windows PowerShell должен реализовать метод System. Management. Automation. provider. ипропертикмдлетпровидер. жетпропертидинамикпараметерс * . pathПараметр указывает полный внутренний путь поставщика, а providerSpecificPickList параметр задает свойства, зависящие от поставщика, которые указаны в командной строке. Этот параметр может быть null или пустым, если свойства передаются в командлет. В этом случае этот метод возвращает объект со свойствами и полями с атрибутами синтаксического анализа, похожими на класс командлета или объект System. Management. Automation. рунтимедефинедпараметердиктионари . среда выполнения Windows PowerShell использует возвращаемый объект для добавления параметров в командлет.

Ниже приведена реализация класса System. Management. Automation. Provider. ипропертикмдлетпровидер. жетпропертидинамикпараметерс * по умолчанию из файла темплатепровидер. cs, предоставленного Windows PowerShell.

Установка свойств

чтобы задать свойства, поставщик свойств Windows PowerShell должен реализовать метод System. Management. Automation. provider. ипропертикмдлетпровидер. Setproperty * для поддержки вызовов из Set-ItemProperty командлета. Этот метод задает одно или несколько свойств элемента по указанному пути и перезаписывает указанные свойства в соответствии с требованиями. System. Management. Automation. Provider. ипропертикмдлетпровидер. SetProperty * также записывает экземпляр объекта System. Management. Automation. PSObject , представляющий контейнер свойств обновленных свойств.

Ниже приведена реализация System. Management. Automation. Provider. ипропертикмдлетпровидер. SetProperty * по умолчанию из файла темплатепровидер. cs, предоставленного Windows PowerShell.

Вопросы, связанные с реализацией Set-ItemProperty

Следующие условия могут применяться к реализации System. Management. Automation. Provider. ипропертикмдлетпровидер. SetProperty *:

Присоединение динамических параметров для командлета Set-ItemProperty

Set-ItemPropertyКомандлету могут потребоваться дополнительные параметры, заданные динамически во время выполнения. чтобы предоставить эти динамические параметры, поставщик свойств Windows PowerShell должен реализовать метод System. Management. Automation. provider. ипропертикмдлетпровидер. сетпропертидинамикпараметерс * . Этот метод возвращает объект со свойствами и полями с атрибутами синтаксического анализа, похожими на класс командлета или объект System. Management. Automation. рунтимедефинедпараметердиктионари . nullЗначение может быть возвращено, если не нужно добавлять динамические параметры.

Ниже приведена реализация класса System. Management. Automation. Provider. ипропертикмдлетпровидер. жетпропертидинамикпараметерс * по умолчанию из файла темплатепровидер. cs, предоставленного Windows PowerShell.

Очистка свойств

чтобы очистить свойства, поставщик свойств Windows PowerShell должен реализовать метод System. Management. Automation. provider. ипропертикмдлетпровидер. клеарпроперти * для поддержки вызовов из Clear-ItemProperty командлета. Этот метод задает одно или несколько свойств элемента, расположенного по указанному пути.

Ниже приведена реализация класса System. Management. Automation. Provider. ипропертикмдлетпровидер. клеарпроперти * по умолчанию из файла темплатепровидер. cs, предоставленного Windows PowerShell.

Важно помнить о реализации Клеарпроперти

Следующие условия могут применяться к реализации System. Management. Automation. Provider. ипропертикмдлетпровидер. клеарпроперти *:

Присоединение динамических параметров к командлету Clear-ItemProperty

Clear-ItemPropertyКомандлету могут потребоваться дополнительные параметры, заданные динамически во время выполнения. чтобы предоставить эти динамические параметры, поставщик свойств Windows PowerShell должен реализовать метод System. Management. Automation. provider. ипропертикмдлетпровидер. клеарпропертидинамикпараметерс * . Этот метод возвращает объект со свойствами и полями с атрибутами синтаксического анализа, похожими на класс командлета или объект System. Management. Automation. рунтимедефинедпараметердиктионари . nullЗначение может быть возвращено, если не нужно добавлять динамические параметры.

Ниже приведена реализация класса System. Management. Automation. Provider. ипропертикмдлетпровидер. клеарпропертидинамикпараметерс * по умолчанию из файла темплатепровидер. cs, предоставленного Windows PowerShell.

создание поставщика Windows PowerShell

См. раздел Регистрация командлетов, поставщиков и ведущих приложений.

См. также:

поставщик Windows PowerShell

разработка поставщика Windows PowerShell

Расширение типов объектов и форматирование

Регистрация командлетов, поставщиков и ведущих приложений