Что происходит с параметрами переключателя командлета 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, но не объясняется, о чем идет речь.