Применимо к: Exchange Server 2010 SP1

Последнее изменение раздела: 2009-02-20

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

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

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

Параметр 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

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

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

  • Clear

  • Disable

  • Dismount

  • Move

  • Remove

  • Stop

  • Suspend

  • Uninstall

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

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

Скопировать код
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] Yes.   Ввод Y указывает команде продолжить выполнение операции. Следующая операция запросит еще одно подтверждение. Значение по умолчанию — [Y] Yes.

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

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

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

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

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

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

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

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

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

Параметр ValidateOnly

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

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

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

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

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

Скопировать код
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 Administra
								 tive Group (FYDIBOHF23SPDLT)/cn=Recipients/c
								 n=Kim Akers
PrimarySmtpAddress			 : kim@contoso.com
SourceServer					 : MBX.contoso.com
SourceDatabase				 : Mailbox Database 0896551697
SourceGlobalCatalog			: MBX
SourceDomainController		 : MBX.contoso.com
TargetGlobalCatalog			: MBX
TargetDomainController		 : MBX.contoso.com
TargetMailbox					:
TargetServer					 : MBX.contoso.com
TargetDatabase				 : Executive Database
MailboxSize					: 0 B (0 bytes)
IsResourceMailbox				: False
SIDUsedInMatch				 :
SMTPProxies					:
SourceManager					:
SourceDirectReports			:
SourcePublicDelegates			:
SourcePublicDelegatesBL		:
SourceAltRecipient			 :
SourceAltRecipientBL			 :
SourceDeliverAndRedirect		 :
MatchedTargetNTAccountDN		 :
IsMatchedNTAccountMailboxEnabled :
MatchedContactsDNList			:
TargetNTAccountDNToCreate		:
TargetManager					:
TargetDirectReports			:
TargetPublicDelegates			:
TargetPublicDelegatesBL		:
TargetAltRecipient			 :
TargetAltRecipientBL			 :
TargetDeliverAndRedirect		 :
Options						: Default
SourceForestCredential		 :
TargetForestCredential		 :
TargetFolder					 :
PSTFilePath					:
RecoveryMailboxGuid			:
RecoveryMailboxLegacyExchangeDN  :
RecoveryMailboxDisplayName	 :
RecoveryDatabaseGuid			 :
StandardMessagesDeleted		: 0
AssociatedMessagesDeleted		: 0
DumpsterMessagesDeleted		: 0
MoveType						 : IntraOrg
MoveStage						: Validation
StartTime						: 2/10/2009 12:20:04 PM
EndTime						: 2/10/2009 12:20:04 PM
StatusCode					 : 0
StatusMessage					: This mailbox can be moved to the target data
								 base.
ReportFile					 : C:\Program Files\Microsoft\Exchange Server\V
								 14\Logging\MigrationLogs\move-Mailbox2009021
								 0-122003-8563750.xml

Дополнительные сведения