Используя CmdletBinding, существует ли простой способ регургитации точных параметров, с которыми был вызван командлет, чтобы я мог вызвать другой командлет с точно такими же параметрами?
Я пишу командлеты Powershell в Powershell.Я использую расширенные функции.У меня есть командлет Get-Environment с несколькими необязательными параметрами, такими как [string] EnvironmentName и [switch] Active.У меня есть другой командлет Get-Machine со всеми теми же необязательными параметрами;это называется Get-Environment.Первоначально, прежде чем добавить параметр [switch] Active, я просто вызвал Get-Environment со всеми переменными в явном виде (см. Ниже).
Теперь я не могу сделать то же самое, потому что если я добавлю «active»тогда это будет установлено.Я не хочу делать тест в Get-Machine, чтобы увидеть, если Active имеет значение true, и иметь две разные версии вызова Get-Environment.Я бы предпочел не обходить хеш-таблицу $ PSBoundParameters и восстанавливать исходные строки, но это выглядит как единственно возможный путь вперед (если я что-то упустил.)
Оригинальный код внутри get-machine:
$environments = get-Environment -EnvironmentName $EnvironmentName