В чем дело с параметрами ключа командной строки Powershell, для которых требуется двоеточие?Powershell: Colon in commandlet parameters
Рассмотрите командлет оболочки управления Exchange 2010 Move-ActiveMailboxDatabase. Переключатель Confirm является System.Management.Automation.SwitchParameter
и должен быть использован, как это так,
Move-ActiveMailboxDatabase -Confirm:$false
Без двоеточия команда не может распознать не подтвердить переключатель, как это так,
Move-ActiveMailboxDatabase -Confirm $false
Почему? В чем разница, что делает двоеточие? Почему Exchange2010, кажется, о единственном, что я заметил это поведение?
Я просмотрел Powershell в Action и Powershell 2.0, но ничего не нашел об этом синтаксисе. Тем не менее, разрешение области и использование доступа к объектам .Net документируются в этих книгах.
Мой Google-fu нашел article, который утверждает, что он явно передает значения параметров переключателя, но не может объяснить, что это значит.
Не полный ответ. Я не знаю пример почтовых ящиков, но во многих других случаях (например, 'Set-SMBServerConfiguration') эффект' -Confirm: $ false' отличается от его отсутствия. Я могу использовать '-Confirm: $ false' или' -Force', иначе мне нужно подтвердить. – Lamarth