РАЗДЕЛ
    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




Содержание