The CmdletBinding attribute
The CmdletBinding
attribute is used to turn a function into an advanced function and is placed immediately above a param
block. The attribute is used to add extra functionality, such as access to common parameters, control over the impact level, and so on. Scripts are not referred to as advanced scripts, but the same principle applies.
CmdletBinding
may be used to do the following:
- Add common parameters, such as
ErrorAction
,Verbose
,Debug
,ErrorVariable
,WarningVariable
, and so on - Enable use of the built-in
$PSCmdlet
variable - Declare support for
WhatIf
andConfirm
and define the impact level of the command
If a script or function has no parameters, and wishes to make use of the capabilities provided by CmdletBinding
, an empty param
block must be declared:
function Test-EmptyParam {
[CmdletBinding()]
param ( )
}
One of the most important features added by CmdletBinding
are the common parameters.