主題
    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




目錄