WhatIf、Confirm 及 ValidateOnly 參數

適用於:Exchange Server 2013

經驗豐富的系統管理員和腳本撰寫者,以及不熟悉 Exchange 和腳本的系統管理員,都可以受益於使用 WhatIfConfirmValidateOnly 參數。 這些參數可讓您控制命令的執行方式,並明確指出命令會在影響數據之前執行的動作。 當您從測試環境轉換到生產環境,以及推出新的腳本或命令時,這項功能相當有用。

當您使用 WhatIfConfirmValidateOnly 參數搭配命令來修改使用篩選條件或在管線中使用 Get 命令傳回的物件時,這些參數特別有用。 本主題描述每個參數,並提供每個參數的範例命令。

重要事項

如果您想要使用 WhatIfConfirmValidateOnly 參數搭配腳本中的命令,您必須將適當的參數新增至腳本中的每個命令,而不是在呼叫腳本的命令行上。

注意事項

WhatIfConfirmValidateOnly 稱為 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 的確認提示,您可以包含值為 的 $FalseConfirm 參數,如下列範例所示:

Get-JournalRule | Disable-JournalRule -Confirm:$False

這樣就不會顯示確認提示。

警告

Confirm 參數的 預設值為 $True。 Shell 的預設行為是自動顯示確認提示。 如果您隱藏此預設行為,則會指示命令隱藏該命令持續期間的所有確認提示。 此命令會處理所有符合命令準則的物件,而不需要確認。

ValidateOnly 參數

ValidateOnly 參數會指示其套用至的命令,以評估在套用任何變更之前執行作業所需的所有條件和需求。 ValidateOnly 參數可用於可能需要很長的時間才能執行、在多個系統上有數個相依性,或影響重要數據的 Cmdlet,例如信箱。

當您將 ValidateOnly 參數套用至命令時,命令會在整個程式中執行。 命令會執行每個動作,就像沒有 ValidateOnly 參數一樣。 但命令不會變更任何物件。 當命令完成其程式時,它會顯示含有驗證結果的摘要。 如果驗證指出命令成功,您可以再次執行命令,而不需要 ValidateOnly 參數。

當您與 ValidateOnly 參數一起執行命令時,您會將 ValidateOnly 參數放在命令的結尾。