В PS 2.0 обязательные параметры управляются через атрибуты CmdLetBinding и Parameter, как показано в других ответах.
function new-command {
[CmdletBinding()]
PARAM (
[Parameter(Mandatory=$true)]
[string]$Name
)
$Name
}
new-command
В PS 1.0 нет прямых конструкций для обработки обязательных атрибутов, но вы можете, например, выдать ошибку, если обязательный параметр не был предоставлен. Я часто использую следующую конструкцию.
function new-command {
param($Name=$(throw "Mandatory parameter -Name not supplied."))
$Name
}
Надеюсь, это поможет.