トピック
    about_Functions_CmdletBindingAttribute

簡易説明
    コンパイル済みコマンドレットと同様に動作する関数を宣言するための属性について説明します。

詳細説明
    関数を作成するときに、CmdletBinding 属性を追加すると、コンパイル済みコマンドレットのパラ
    メーターがバインドされる場合と同じ方法で関数のパラメーターがバインドされます。この属性を宣言
    すると、$PSCmdlet 自動変数も設定されます。


    コマンドレットのバインドを使用する場合、不明なパラメーターと、一致する位置指定パラメーターを持
    たない位置指定引数があると、パラメーターのバインドが失敗します。また、コマンドレットのバインドを
    伴う関数または備えたスクリプトでは、$args 変数を使用しません。

    注: コンパイル済みコマンドレットは、必要な Cmdlet 属性を使用します。この属性は、このトピ
        ックで説明する CmdletBinding 属性に似ています。


    次の例は、CmdletBinding 属性のすべての引数 (省略可能) を指定する関数のアウトラインを示
    しています。この例の後に、各引数の簡易説明を記載します。

        {
          [CmdletBinding(SupportsShouldProcess=<Boolean>,
                     ConfirmImpact=<String>,
                     DefaultParameterSetName=<String>)]

          Param ($Parameter1)
          Begin{}
          Process{}
          End{}
        }


  SupportsShouldProcess

      SupportsShouldProcess 引数が True に設定されている場合は、関数は ShouldProcess 
      メソッドの呼び出しをサポートしていることを示しています。このメソッドは、関数によってシス
      テムが変更される前にユーザーに確認を求めるために使用されます。この引数を指定する場合は、関
      数の Confirm パラメーターおよび WhatIf パラメーターが有効になります。
 

      確認要求の詳細については、MSDN ライブラリの「Requesting Confirmation (確認の要求)」
      (https://go.microsoft.com/fwlink/?LinkId=136658) を参照してください。


  DefaultParameterSetName
 
      DefaultParameterSetName 引数では、どのパラメーター セットを使用してよいか判断できな
      いときに Windows PowerShell が使用するパラメーター セットの名前を指定します。この問題
      を回避するには、各パラメーター セットの固有パラメーターを必須パラメーターにします。


  ConfirmImpact

      ConfirmImpact 引数では、ShouldProcess メソッドの呼び出しによって関数の操作をいつ確
      認するかを指定します。ShouldProcess メソッドの呼び出しによって、ConfirmImpact 引数が 
      $ConfirmPreference 設定変数の値以上である場合にのみ確認プロンプトが表示されます (引数
      の既定値は Medium です)。この引数は、SupportsShouldProcess 引数が指定されている場合に
      のみ指定してください。


関連項目
    about_Functions_Advanced
    about_Functions_CmdletBindingAttribute
    about_Functions_ParameterAttributes




目次