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


Объявление атрибута командлета

Атрибут Командлета определяет класс Microsoft .NET Framework как командлет и указывает команду и существительное, используемое для вызова командлета.

Синтаксис

[Cmdlet("verbName", "nounName")]
[Cmdlet("verbName", "nounName", Named Parameters...)]

Параметры

VerbName (System.String) Обязательный. Указывает команду командлета. Эта команда указывает действие, выполняемое командлетом. Дополнительные сведения о утвержденных командах командлетов см. в именах командлетов и необходимых рекомендаций по разработке.

NounName (System.String) Обязательный. Указывает существительное командлета. Это существительное указывает ресурс, на который выполняется командлет. Дополнительные сведения о существительных командлетах см. в объявлении командлетов и настоятельно рекомендуемых рекомендаций по разработке.

SupportsShouldProcess (System.Boolean) Необязательный именованный параметр. True указывает, что командлет поддерживает вызовы метода System.Management.Automation.Cmdlet.ShouldProcess, который предоставляет командлету способ запроса пользователю перед выполнением действия, которое изменяет систему. False, значение по умолчанию указывает, что командлет не поддерживает вызовы метода System.Management.Automation.Командлет.ShouldProcess. Дополнительные сведения о запросах на подтверждение см. в разделе "Запрос подтверждения".

ConfirmImpact (System.Management.Automation.ConfirmImpact) — необязательный именованный параметр. Указывает, когда действие командлета должно быть подтверждено вызовом метода System.Management.Automation.Командлет.ShouldProcess. System.Management.Automation.Командлет.ShouldProcess будет вызываться только в том случае, если значение ConfirmImpact командлета (по умолчанию средний) равно или больше значения переменной $ConfirmPreference. Этот параметр следует указывать только в том случае, если указан параметр SupportsShouldProcess.

DefaultParameterSetName (System.String) Необязательный именованный параметр. Указывает набор параметров по умолчанию, который среда выполнения Windows PowerShell пытается использовать, если не удается определить, какой параметр будет использоваться. Обратите внимание, что эта ситуация может быть устранена, сделав уникальный параметр каждого параметра обязательным.

Существует один случай, когда Windows PowerShell не может использовать набор параметров по умолчанию, даже если указано имя набора параметров по умолчанию. Среда выполнения Windows PowerShell не может различать наборы параметров, основанные исключительно на типе объекта. Например, если у вас есть один набор параметров, который принимает строку в качестве пути к файлу, а другой набор, который принимает объект FileInfo напрямую, Windows PowerShell не может определить, какой набор параметров будет использоваться на основе значений, переданных командлету, и не использует набор параметров по умолчанию. В этом случае даже если указать имя набора параметров по умолчанию, Windows PowerShell создает неоднозначное сообщение об ошибке набора параметров.

SupportsTransactions (System.Boolean) Необязательный именованный параметр. True указывает, что командлет можно использовать в транзакции. При указании True среда выполнения Windows PowerShell добавляет параметр UseTransaction в список параметров командлета. False, значение по умолчанию указывает, что командлет не может использоваться в транзакции.

Замечания

  • Вместе команда и существительное используются для идентификации зарегистрированного командлета и вызова командлета в скрипте.

  • При вызове командлета из консоли Windows PowerShell команда похожа на следующую команду:

VerbName-NounName

  • Все командлеты, изменяющие ресурсы за пределами Windows PowerShell, должны включать ключевое слово SupportsShouldProcess при объявлении атрибута командлета, что позволяет командлету вызывать метод System.Management.Automation.Cmdlet.ShouldProcess перед выполнением командлетом действия. Если вызов System.Management.Automation.Командлет.ShouldProcess возвращает false, действие не должно выполняться. Дополнительные сведения о запросах подтверждения, созданных вызовом System.Management.Automation.Командлет.ShouldProcess, см. в запроса подтверждения.

Параметры командлетов Confirm и WhatIf доступны только для командлетов, поддерживающих вызовы System.Management.Automation.Командлет.ShouldProcess.

Пример

Следующее определение класса использует атрибут Командлета для идентификации класса .NET Framework для командлета Get-Proc Get-Proc, который получает сведения о процессах, выполняемых на локальном компьютере.

[Cmdlet(VerbsCommon.Get, "Proc")]
public class GetProcCommand : Cmdlet

Дополнительные сведения о командлете Get-Proc см. в учебнике getProc.

См. также

написание командлета Windows PowerShell