Powershell: Двоеточие в параметрах командлета

Что происходит с параметрами переключателя командлета Powershell, которые требуют двоеточия?

Рассмотрим командлет оболочки управления Exchange 2010 Move-ActiveMailboxDatabase. Переключатель Confirm является System.Management.Automation.SwitchParameter и должен использоваться так,

Move-ActiveMailboxDatabase -Confirm:$false

Без двоеточия команда не распознает переключатель don't confirm так,

Move-ActiveMailboxDatabase -Confirm $false

Почему так? Какую разницу вносит двоеточие? Почему Exchange2010 кажется единственным, где я заметил такое поведение?

Я просмотрел Powershell in Action и Powershell 2.0, но не нашел ничего об этом синтаксисе. Разрешение области действия и использование доступа к объектам .Net документированы в этих книгах.

Мое Google-фу нашло статью, в которой утверждается, что в ней явно пересылаются значения параметров switch, но не объясняется, о чем идет речь.

13
задан vonPryz 15 December 2011 в 19:31
поделиться