WhatIf、Confirm 及 ValidateOnly 參數
適用版本: Exchange Server 2010
上次修改主題的時間: 2009-02-20
無論是有經驗的系統管理員及指令碼編寫者,或是 Exchange 及指令碼的新手管理員,都會覺得 WhatIf、Confirm 及 ValidateOnly 參數非常好用。這些參數可讓您控制命令執行的方式,並且在命令影響資料之前,明確指出該命令的作用。當您從測試環境轉換到實際執行環境時,以及執行新的指令碼或命令時,此功能非常有用。
使用篩選器或在管線中使用 Get 命令來傳回物件之後,使用 WhatIf、Confirm 及 ValidateOnly 參數來搭配修改該物件的命令時,這些參數會特別有用。本主題介紹每個參數,同時也提供每個參數的範例命令。
重要
如果您想要在指令碼中使用 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] 是 輸入 Y 以指示命令繼續操作。下一項作業會顯示另一個確認提示。
[Y] Yes
是預設選項。 - [A] 全部皆是 輸入 A 以指示該命令繼續該作業以及所有後續作業。在此命令期間,您都不會再收到其他確認提示。
- [N] 否 輸入 N 以指示該命令略過此作業,並繼續下一項作業。下一項作業會顯示另一個確認提示。
- [L] 全部皆否 輸入 L 以指示該命令略過此作業以及所有後續作業。
- [S] 暫停 輸入 S 以暫停目前的管線,並回到命令列。輸入 Exit 可繼續進行該管線。
- [?] 說明 輸入 ? 以在命令列上顯示確認提示說明。
如果您要覆寫命令介面的預設行為,並隱藏其自動套用之指令程式的確認提示,您可以加入值為 $False
的 Confirm 參數,如下列範例所示:
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