Параметры WhatIf, Confirm и ValidateOnly

Область применения: Exchange Server 2013 г.

Как опытные администраторы, так и авторы сценариев, а также администраторы, не знакомые с Exchange и скриптами, могут воспользоваться параметрами WhatIf, Confirm и ValidateOnly . Данные параметры позволяют контролировать выполнение команд и точно определять результат до того, как выполнение команды повлияет на данные. Такая возможность особенно важна для перехода от тестовой среды к рабочей и для распространения новых сценариев или команд.

Параметры WhatIf, Confirm и ValidateOnly особенно полезны, если они используются с командами, которые изменяют объекты, возвращаемые с помощью фильтра или команды Get в конвейере. В данном разделе описывается каждый параметр, а также приводится пример команды для каждого параметра.

Важно!

Если вы хотите использовать переключатели WhatIf, Confirm и ValidateOnly с командами в скрипте, необходимо добавить соответствующий переключатель в каждую команду скрипта, а не в командную строку, которая вызывает скрипт.

Примечание.

WhatIfConfirm и ValidateOnly называются параметрами-переключателями. Дополнительные сведения о параметрах-переключателях см. в разделе Parameters.

Параметр WhatIf

Параметр WhatIf указывает команде, к которой она применяется для выполнения, но только для отображения объектов, на которые будет влиять выполнение команды, и какие изменения будут внесены в эти объекты. На самом деле этот параметр не изменяет ни один из этих объектов. При использовании параметра WhatIf вы можете увидеть, соответствуют ли изменения, которые будут внесены в эти объекты, вашим ожиданиям, не беспокоясь об изменении этих объектов.

При выполнении команды вместе с параметром WhatIf вы помещаете параметр WhatIf в конец команды, как показано в следующем примере:

New-AcceptedDomain -Name "Contoso Domain" -DomainName "contoso.com" -WhatIf

При выполнении команды из данного примера командная консоль возвращает следующий текст:

What if: Creating Accepted Domain "Contoso Domain" with domain name "contoso.com".

Параметр Confirm

Параметр Подтвердить указывает команде, к которой она применяется, прекратить обработку перед внесением изменений. Командой затем запрашивается подтверждение для каждого действия перед продолжением выполнения. При использовании параметра Подтвердить можно выполнить пошаговое изменение объектов, чтобы убедиться, что изменения внесены только в конкретные объекты, которые требуется изменить. Такая возможность полезна, если изменяется большое количество объектов и требуется точный контроль операций командной консоли. Перед изменением командной консолью для каждого объекта отображается запрос на подтверждение.

По умолчанию оболочка автоматически применяет переключатель Подтвердить к командлетам со следующими командами:

  • Clear
  • Disable
  • Dismount
  • Move
  • Remove
  • Stop
  • Suspend
  • Uninstall

При запуске командлета с любой из этих глаголов оболочка автоматически останавливает команду и ожидает подтверждения, прежде чем она продолжит обработку.

Если вы хотите вручную применить переключатель Подтвердить к команде, добавьте параметр Подтвердить в конце команды, как показано в следующем примере:

Get-JournalRule | Enable-JournalRule -Confirm

При выполнении команды из данного примера командная консоль возвращает следующий запрос на подтверждение:

Confirm
Are you sure you want to perform this action?
Enabling journal rule "Litigation Journal Rule".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):

Запросом на подтверждение предлагаются следующие варианты:

  • [Y] Да: введите Y , чтобы указать команде продолжить операцию. Следующей операцией будет запрошено еще одно подтверждение. [Y] Yes — это выбор по умолчанию.

  • [A] Да для всех. Введите A , чтобы указать команде продолжить операцию и все последующие операции. Вы не будете получать дополнительные запросы на подтверждение на время выполнения этой команды.

  • [N] Нет: введите N , чтобы указать команде пропустить эту операцию и продолжить следующую операцию. Следующей операцией будет запрошено еще одно подтверждение.

  • [L] Нет ко всем: введите L , чтобы указать команде пропустить эту операцию и все последующие операции.

  • [S] Приостановить: введите S , чтобы приостановить текущий конвейер и вернуться в командную строку. При вводе Exit выполнение конвейера продолжается.

  • [?] Справка: введите ? , чтобы в командной строке отображалось окно справки с запросом на подтверждение.

Если вы хотите переопределить поведение оболочки по умолчанию и отключить запрос подтверждения для командлетов, к которым она применяется автоматически, можно включить параметр Подтвердить со значением $False, как показано в следующем примере:

Get-JournalRule | Disable-JournalRule -Confirm:$False

В данном случае не отображается никаких запросов на подтверждение.

Предупреждение

Значение по умолчанию параметра Confirm$True. По умолчанию в командной консоли автоматически отображается запрос на подтверждение. При отмене данного поведения по умолчанию команде дается указание отменить все запросы на подтверждение на время действия данной команды. Командой будут обрабатываться все объекты, которые соответствуют условиям, определенным для данной команды, без подтверждения.

Параметр ValidateOnly

Параметр ValidateOnly указывает команде, к которой она применяется, чтобы оценить все условия и требования, необходимые для выполнения операции, перед применением любых изменений. Параметр ValidateOnly доступен для командлетов, выполнение которых может занять много времени, иметь несколько зависимостей от нескольких систем или влиять на критически важные данные, например почтовые ящики.

При применении переключателя ValidateOnly к команде команда выполняется через весь процесс. Команда выполняет каждое действие так, как и без переключателя ValidateOnly . Но командой не изменяются никакие объекты. После того как команда завершает обработку, она отображает итоговые результаты проверки. Если проверка показывает, что команда прошла успешно, можно выполнить команду повторно без параметра ValidateOnly .

При выполнении команды вместе с параметром ValidateOnly вы помещаете параметр ValidateOnly в конец команды.