Ansgar Wiechers справедливо указывает, что в вашем случае вам необходимо выполнить проверку аргумента внутри вашего сценария, учитывая, что значения для проверки еще не доступныв сценарии объявление (разбор) время ;используя блок скрипта (для простоты), чтобы продемонстрировать технику:
& {
param(
[string] $SomeParam
)
# The hashtable to validate against.
$hashTable = @{ foo = 1; bar = 2; baz = 3 }
# Check the -SomeParam argument against the keys of $hashTable.
if (-not $hashTable.ContainsKey($SomeParam)) {
Throw "Invalid -SomeParam argument: $SomeParam"
}
# ...
} bar # OK, because 'bar' is a key in $hashTable