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

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

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

Параметр WhatIf

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

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

Копировать код
New-AcceptedDomain -Name "Contoso Domain" -DomainName "contoso.com" -WhatIf 

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

Копировать код
What if: Creating Accepted Domain "Contoso Domain" with Domain Name "contoso.com".

Для отображения списка командлетов, которые принимают параметр WhatIf, необходимо набрать в среде управления Exchange следующую команду:

Копировать код
Get-ExCommand | Where { $_.Definition -Like "*WhatIf*" }

Параметр Confirm

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

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

  • Remove

  • Move

  • Stop

  • Clear

  • Suspend

  • Uninstall

  • Dismount

  • Disable

Если выполняется командлет, в составе которого есть любая из данных команд, среда управления Exchange автоматически останавливает выполнение командлета и ожидает подтверждения перед продолжением обработки.

При применении параметра Confirm в какой-либо команде вручную, параметр Confirm должен помещаться в конце команды, как в следующем примере:

Копировать код
Get-JournalRule | Enable-JournalRule -Confirm

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

Копировать код
[Y] Yes   [A] Yes to All   [N] No   [L] No to All   [S] Suspend   [?] Help   
(default is "Y"):

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

  • [Y] Yes (Да)   Ввод Y указывает команде продолжить выполнение операции. Следующая операция запросит еще одно подтверждение. Значение по умолчанию — [Y] Yes.

  • [A] Yes to All (Да для всех)   Ввод A указывает команде продолжить выполнение данной и всех последующих операций. Во время выполнения данной команды больше не будет дополнительных запросов на подтверждение.

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

  • [L] No to All (Нет для всех)   Ввод L указывает команде пропустить данную и все последующие операции.

  • [S] Suspend (Приостановить)   При вводе S приостанавливается выполнение текущего конвейера и происходит возврат к командной строке. При вводе Exit выполнение конвейера продолжается.

  • [?] Help (Справка)   При вводе ? в командной строке отображается справка по запросам на подтверждение.

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

Копировать код
Get-JournalRule | Disable-JournalRule -Confirm:$False

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

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

Для отображения списка командлетов, которые принимают параметр Confirm, необходимо набрать в среде управления Exchange следующую команду:

Копировать код
Get-ExCommand | Where { $_.Definition -Like "*Confirm*" }

Параметр ValidateOnly

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

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

При выполнении команды с параметром ValidateOnly параметр ValidateOnly должен помещаться в конце команды, как в следующем примере:

Копировать код
Get-Mailbox "Kim Akers" | Move-Mailbox -TargetDatabase "Executive Database" -ValidateOnly

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

Копировать код
Identity						 : contoso.com/Users/Kim Akers
DistinguishedName				: CN=Kim Akers,CN=Users,DC=contoso,DC=com
DisplayName					: Kim Akers
Alias							: kim
LegacyExchangeDN				 : /o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=kim
PrimarySmtpAddress			 : kim@contoso.com
SourceServer					 : Win2003MS.contoso.com
SourceDatabase				 : WIN2003MS\First Storage Group\Mailbox Database
SourceGlobalCatalog			: Win2003MS.contoso.com
TargetGlobalCatalog			: Win2003MS.contoso.com
TargetDomainController		 : Win2003MS.contoso.com
TargetMailbox					:
TargetServer					 : Win2003MS.contoso.com
TargetDatabase				 : WIN2003MS\Second Storage Group\Executive Database
MailboxSize					: 0KB
IsResourceMailbox				: False
SIDUsedInMatch				 :
SMTPProxies					:
SourceManager					:
SourceDirectReports			:
SourcePublicDelegates			:
SourcePublicDelegatesBL		:
MatchedTargetNTAccountDN		 :
IsMatchedNTAccountMailboxEnabled :
MatchedContactsDNList			:
TargetNTAccountDNToCreate		:
TargetManager					:
TargetDirectReports			:
TargetPublicDelegates			:
TargetPublicDelegatesBL		:
Options						: Default
SourceForestCredential		 :
TargetForestCredential		 :
TargetFolder					 :
RsgMailboxGuid				 :
RsgMailboxLegacyExchangeDN	 :
RsgMailboxDisplayName			:
RsgDatabaseGuid				:
MoveType						 : IntraOrg
MoveStage						: Validation
StartTime						: 7/17/2006 4:39:13 PM
EndTime						: 7/17/2006 4:39:14 PM
StatusCode					 : 0
StatusMessage					: This mailbox can be moved to the target database.

Для отображения списка командлетов, которые принимают параметр ValidateOnly, введите в командной консоли Exchange следующую команду:

Копировать код
Get-ExCommand | Where { $_.Definition -Like "*ValidateOnly*" }