WhatIf、Confirm 及 ValidateOnly 參數
適用版本: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
上次修改主題的時間: 2007-06-19
Exchange 管理命令介面是功能非常強大且具有彈性的管理介面。您可以使用命令列,以互動方式管理您的基礎結構。您可以建立及執行指令碼,將常用或複雜的工作自動化。當您學習如何使用 Exchange 管理命令介面本身及/或指令碼時,可能會想要在命令影響資料之前,先檢視該命令的結果。您可能也會想要確認命令即將執行。當您從測試環境轉換到生產環境時,以及執行新的指令碼或命令時,此功能尤其重要。
無論是有經驗的系統管理員及指令碼編寫者,或是 Exchange 及指令碼的新手管理員,都會覺得 WhatIf、Confirm 和 ValidateOnly 參數很好用。這些參數可在 Exchange 管理命令介面中使用。這些參數可讓您控制命令執行的方式,並且在命令影響資料之前,明確指出該命令的作用。使用篩選器或在管線中使用 Get 命令來傳回物件之後,使用 WhatIf、Confirm 及 Validate 參數來搭配修改該物件的命令時,這些參數會特別有用。本主題將一一說明各個參數。
重要事項: |
---|
如果您想要在指令碼中使用 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 參數套用至具有下列命令動詞的指令程式:
移除
移動
Stop
清除
Suspend
Uninstall
Dismount
停用
當含有上述命令動詞的指令程式執行時,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] 是 輸入 Y 以指示命令繼續操作。下一項作業會顯示另一個確認提示。
[Y] Yes
是預設選項。[A] 全部皆是 輸入 A 以指示該命令繼續該作業以及所有後續作業。在此命令期間,您都不會再收到其他確認提示。
[N] 否 輸入 N 以指示該命令略過此作業,並繼續下一項作業。下一項作業會顯示另一個確認提示。
[L] 全部皆否 輸入 L 以指示該命令略過此作業以及所有後續作業。
[S] 暫停 輸入 S 以暫停目前的管線,並回到命令列。輸入 Exit 可繼續進行該管線。
[?] 說明 輸入 ? 以顯示該命令列的確認提示說明。
如果您要覆寫 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*" }