WhatIf、Confirm 及 ValidateOnly 參數

 

適用版本: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上次修改主題的時間: 2009-02-20

無論是有經驗的系統管理員及指令碼編寫者,或是 Exchange 及指令碼的新手管理員,都會覺得 WhatIfConfirmValidateOnly 參數非常好用。這些參數可讓您控制命令執行的方式,並且在命令影響資料之前,明確指出該命令的作用。當您從測試環境轉換到實際執行環境時,以及執行新的指令碼或命令時,此功能非常有用。

使用篩選器或在管線中使用 Get 命令來傳回物件之後,使用 WhatIfConfirmValidateOnly 參數來搭配修改該物件的命令時,這些參數會特別有用。本主題介紹每個參數,同時也提供每個參數的範例命令。

重要

如果您想要在指令碼中使用 WhatIfConfirmValidateOnly 參數來搭配命令,您必須將適當的參數加入指令碼中的每個命令,而不是加入呼叫指令碼的命令列。

注意

WhatIfConfirmValidateOnly 稱為切換參數。如需切換參數的詳細資訊,請參閱參數

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] 是   輸入 Y 以指示命令繼續操作。下一項作業會顯示另一個確認提示。[Y] Yes 是預設選項。

  • [A] 全部皆是   輸入 A 以指示該命令繼續該作業以及所有後續作業。在此命令期間,您都不會再收到其他確認提示。

  • [N] 否   輸入 N 以指示該命令略過此作業,並繼續下一項作業。下一項作業會顯示另一個確認提示。

  • [L] 全部皆否   輸入 L 以指示該命令略過此作業以及所有後續作業。

  • [S] 暫停   輸入 S 以暫停目前的管線,並回到命令列。輸入 Exit 可繼續進行該管線。

  • [?] 說明   輸入 ? 以在命令列上顯示確認提示說明。

如果您要覆寫命令介面的預設行為,並隱藏其自動套用之指令程式的確認提示,您可以加入值為 $FalseConfirm 參數,如下列範例所示:

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

詳細資訊

Exchange 管理命令介面基本概念