РАЗДЕЛ
about_Functions_CmdletBindingAttribute
КРАТКОЕ ОПИСАНИЕ
Описывает атрибут, который объявляет функцию, действие которой
похоже на действие скомпилированного командлета.
ПОЛНОЕ ОПИСАНИЕ
При написании функций можно добавлять атрибут CmdletBinding,
чтобы среда Windows PowerShell привязывала параметры функции так
же, как выполняется привязка параметров скомпилированных
командлетов. Если этот атрибут объявлен, среда Windows PowerShell
также задает автоматическую переменную $PSCmdlet.
При использовании привязки командлета неизвестные параметры и
позиционные аргументы, для которых отсутствуют соответствующие
позиционные параметры, вызывают сбой привязки параметров. Кроме того,
функция или скрипт с привязкой командлета не использует переменную $args.
Примечание. Скомпилированные командлеты используют обязательный
атрибут Cmdlet, действие которого похоже на действие описываемого
в этом разделе атрибута CmdletBinding.
В следующем примере показан шаблон функции, которая задает все
необязательные аргументы атрибута CmdletBinding. После примера
приведено краткое описание каждого из аргументов.
{
[CmdletBinding(SupportsShouldProcess=<Boolean>,
ConfirmImpact=<String>,
DefaultParameterSetName=<String>)]
Param ($Parameter1)
Begin{}
Process{}
End{}
}
SupportsShouldProcess
Если аргумент SupportsShouldProcess имеет значение true, это
значит, что функция поддерживает вызовы метода ShouldProcess,
который запрашивает у пользователя подтверждение, прежде чем функция
изменит систему. Если этот аргумент задан, для функции включаются
параметры Confirm и WhatIf.
Дополнительные сведения о запросах подтверждения см. в разделе
"Запрос подтверждения" библиотеки MSDN (Microsoft Developer
Network) по адресу https://go.microsoft.com/fwlink/?LinkId=136658.
DefaultParameterSetName
Аргумент DefaultParameterSetName задает имя набора параметров,
который среда Windows PowerShell будет пытаться использовать,
если ей не удастся определить нужный набор параметров. Этой
ситуации можно избежать, сделав уникальный параметр каждого из
наборов параметров обязательным.
ConfirmImpact
Аргумент ConfirmImpact определяет, в каком случае действие
функции должно быть подтверждено вызовом метода ShouldProcess. Вызов
метода ShouldProcess отображает запрос подтверждения только тогда, когда
аргумент ConfirmImpact больше или равен значению привилегированной
переменной $ConfirmPreference. (По умолчанию этот аргумент имеет значение
Medium.) Этот аргумент следует задавать только в том случае, когда задан
аргумент SupportsShouldProcess.
СМ. ТАКЖЕ
about_Functions_Advanced
about_Functions_CmdletBindingAttribute
about_Functions_ParameterAttributes