В сценарии мне нужно управлять членством в группе. К сожалению, командлет для удаления члена из группы, Remove-ADGroupMember
всегда просит подтверждения. Это противоречит описанному поведению командлета, поскольку существует -Confirm
опция, которая должна включать подтверждение. Это требует использования неясной и плохо документированной привязки двоеточия значения к параметру переключателя: -Confirm:$false
, когда было бы разумнее использовать простой -Force
переключатель.
Есть ли в среде параметр, который меняет поведение командлета? Это просто плохо реализованная функция? Мне не хватает какой-то очевидной документации, объясняющей запутанное поведение параметров переключателя?
Вы спрашиваете, почему при включении "-Confirm" не запрашивается подтверждение? По умолчанию, если не указано $ false, командлет всегда запрашивает подтверждение. Опция дает вам возможность подавить подтверждение. Это может сбивать с толку то, что он называется -Confirm, но это потому, что с PS вы указываете значение для этого параметра. Таким образом, вы, по сути, говорите «установить -Подтвердить на ложь / нет». Было бы намного сложнее, если бы параметр назывался -NoConfirm, и вам нужно было бы установить значение для этого параметра!
Это сделано намеренно. По умолчанию выводится запрос при запуске этого командлета без -Confirm:$false
чтобы убедиться, что вы хотите выполнить команду.
Некоторые ссылки для получения знаний (обратите внимание, что они не отвечают на вопрос напрямую, просто дают вам некоторое представление о грамматике / синтаксисе PS):
http://blogs.msdn.com/b/powershell/archive/2006/05/10/594535.aspx
http://www.manning.com/payette/AppCexcerpt.pdf
http://technet.microsoft.com/en-us/magazine/jj554301.aspx
РЕДАКТИРОВАТЬ: возможно, я неправильно истолковал ваш вопрос. Я основывал свой ответ на том, что «есть опция -Подтвердить, которая должна включать подтверждение». Если ваш вопрос в том, почему я должен использовать двоеточие, тогда ответ @DavidV будет правильным.
Отличный ответ предоставлен в Stackoverflow (все заслуги manojlds):
https://stackoverflow.com/questions/8525572/powershell-colon-in-commandlet-parameters