WhatIf、Confirm 及 ValidateOnly 參數
適用於:Exchange Server 2013
經驗豐富的系統管理員和腳本撰寫者,以及不熟悉 Exchange 和腳本的系統管理員,都可以受益於使用 WhatIf、 Confirm 和 ValidateOnly 參數。 這些參數可讓您控制命令的執行方式,並明確指出命令會在影響數據之前執行的動作。 當您從測試環境轉換到生產環境,以及推出新的腳本或命令時,這項功能相當有用。
當您使用 WhatIf、 Confirm 和 ValidateOnly 參數搭配命令來修改使用篩選條件或在管線中使用 Get 命令傳回的物件時,這些參數特別有用。 本主題描述每個參數,並提供每個參數的範例命令。
重要事項
如果您想要使用 WhatIf、 Confirm 和 ValidateOnly 參數搭配腳本中的命令,您必須將適當的參數新增至腳本中的每個命令,而不是在呼叫腳本的命令行上。
注意事項
WhatIf、 Confirm 和 ValidateOnly 稱為 switch 參數。 如需切換參數的詳細資訊,請參閱Parameters。
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 參數時,可以逐步變更物件,以確保只對您想要變更的特定對象進行變更。 當您將變更套用至許多物件,並想要精確控制殼層的作業時,這項功能非常有用。 在Shell修改物件之前,每個物件都會顯示確認提示。
根據預設,Shell 會自動將 Confirm 參數套用至具有下列動詞命令的 Cmdlet:
- Clear
- Disable
- Dismount
- Move
- Remove
- Stop
- Suspend
- Uninstall
當 Cmdlet 執行具有上述任一動詞命令時,Shell 會自動停止命令,並在繼續處理之前等候您的通知。
如果您想要手動將 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] No to All: Type L to instruct the command to skip this operation and all subsequent operations.
[S] 暫停:輸入 S 以暫停目前的管線並返回命令行。 輸入 Exit 以繼續管線。
[?]說明:輸入 ? 以在命令列上顯示確認提示 [說明]。
如果您想要覆寫 Shell 的預設行為,並隱藏其自動套用之 Cmdlet 的確認提示,您可以包含值為 的 $False
Confirm 參數,如下列範例所示:
Get-JournalRule | Disable-JournalRule -Confirm:$False
這樣就不會顯示確認提示。
警告
Confirm 參數的 預設值為 $True
。 Shell 的預設行為是自動顯示確認提示。 如果您隱藏此預設行為,則會指示命令隱藏該命令持續期間的所有確認提示。 此命令會處理所有符合命令準則的物件,而不需要確認。
ValidateOnly 參數
ValidateOnly 參數會指示其套用至的命令,以評估在套用任何變更之前執行作業所需的所有條件和需求。 ValidateOnly 參數可用於可能需要很長的時間才能執行、在多個系統上有數個相依性,或影響重要數據的 Cmdlet,例如信箱。
當您將 ValidateOnly 參數套用至命令時,命令會在整個程式中執行。 命令會執行每個動作,就像沒有 ValidateOnly 參數一樣。 但命令不會變更任何物件。 當命令完成其程式時,它會顯示含有驗證結果的摘要。 如果驗證指出命令成功,您可以再次執行命令,而不需要 ValidateOnly 參數。
當您與 ValidateOnly 參數一起執行命令時,您會將 ValidateOnly 參數放在命令的結尾。