Разница между обычными и расширенными функциями в PowerShell заключается в том, что расширенные функции имеют ряд общих параметров, которые добавляются в функцию автоматически. 1 К этим общим параметрам относятся, например, Verbose и Debug. 1
Расширенные функции создаются при наличии одного или двух атрибутов: CmdletBinding и Parameter. 4 Атрибут CmdletBinding может хранить в себе значения, которые касаются всей функции без привязки к конкретному параметру. 4 Атрибут Parameter используется внутри param и применяется для проверки (валидации) определённых параметров. 4
Также расширенные функции могут вести себя как командлеты, то есть с практической точки зрения это тот же командлет, но описанный в модуле сценариев — текстовом файле с расширением .psm1. 2