主題 about_Functions_CmdletBindingAttribute 簡短描述 描述會宣告與編譯的 Cmdlet 作用類似之函數的屬性。 完整描述 如果在撰寫函數時新增 CmdletBinding 屬性,Windows PowerShell 就會以繫結編 譯的 Cmdlet 的同樣方式來繫結函數的參數。在宣告這個屬性後,Windows PowerShell 也會設定 $PSCmdlet 自動變數。 使用 Cmdlet 繫結時,如果有不明的參數以及沒有相符之位置參數的位置引數,就會導致 參數繫結作業失敗。此外,具有 Cmdlet 繫結的函數或指令碼也不使用 $args 變數。 注意:編譯的 Cmdlet 會使用必要的 Cmdlet 屬性,該屬性類似於本主題所述的 CmdletBinding 屬性。 下列範例示範函數的大綱,此函數會指定 CmdletBinding 屬性的所有選擇性引數。在 此範例後則提供每個引數的簡短描述。 { [CmdletBinding(SupportsShouldProcess=<布林值>, ConfirmImpact=<字串>, DefaultParameterSetName=<字串>)] Param ($Parameter1) Begin{} Process{} End{} } SupportsShouldProcess 當 SupportsShouldProcess 引數設定為 true 時,代表函數支援對 ShouldProcess 方法的呼叫,該方法則會在函數對系統進行變更前用來提示使用者提 供意見反應。在指定此引數後,函數的 Confirm 和 WhatIf 參數就會啟用。 如需確認要求的詳細資訊,請參閱 MSDN (Microsoft Developer Network) 文件 庫中的<要求確認>(https://go.microsoft.com/fwlink/?LinkId=136658) (英文)。 DefaultParameterSetName DefaultParameterSetName 引數會指定參數集的名稱,當 Windows PowerShell 無法判斷要使用哪個參數集時,就會使用此參數集。您可以將每個參數集的唯一參數設 定為強制參數,以避免這個問題。 ConfirmImpact ConfirmImpact 引數會指定函數的動作何時應由對 ShouldProcess 方法的呼叫來 確認。只有當 ConfirmImpact 引數等於或大於 $ConfirmPreference 喜好設定 變數的值時,對 ShouldProcess 方法的呼叫才會顯示確認提示 (該引數的預設值為 Medium)。請只在指定了 SupportsShouldProcess 引數的狀況下,才指定這個引 數。 請參閱 about_Functions_Advanced about_Functions_CmdletBindingAttribute about_Functions_ParameterAttributes