次の方法で共有


コマンドレット属性の宣言

コマンドレット属性は、コマンドレットとして Microsoft .NET Framework クラスを識別し、コマンドレットの呼び出しに使用される動詞と名詞を指定します。

構文

[Cmdlet("verbName", "nounName")]
[Cmdlet("verbName", "nounName", Named Parameters...)]

パラメーター

VerbName (System.String) が必要です。 コマンドレット動詞を指定します。 この動詞は、コマンドレットによって実行されるアクションを指定します。 承認されたコマンドレット動詞の詳細については、「コマンドレット動詞名 」および「必要な開発ガイドライン 」を参照してください。

NounName (System.String) が必要です。 コマンドレットの名詞を指定します。 この名詞は、コマンドレットが実行するリソースを指定します。 コマンドレットの名詞の詳細については、「コマンドレット宣言強く推奨される開発ガイドラインを参照してください。

SupportsShouldProcess (System.Boolean) 省略可能な名前付きパラメーター。 True は、System.Management.Automation.Cmdlet.ShouldProcess メソッドの呼び出しをコマンドレットがサポートしていることを示します。このメソッドは、システムを変更するアクションが実行される前にユーザーにプロンプトを表示する方法をコマンドレットに提供します。 既定値 FalseSystem.Management.Automation.Cmdlet.ShouldProcess メソッドの呼び出しがコマンドレットでサポートされていないことを示します。 確認要求の詳細については、「 要求の確認」を参照してください。

ConfirmImpact (System.Management.Automation.ConfirmImpact) 省略可能な名前付きパラメーター。 System.Management.Automation.Cmdlet.ShouldProcess メソッドの呼び出しによって、コマンドレットのアクションを確認するタイミングを指定します。 System.Management.Automation.Cmdlet.ShouldProcess は、コマンドレットの ConfirmImpact 値 (既定では Medium) が $ConfirmPreference 変数の値以上の場合にのみ呼び出されます。 このパラメーターは、SupportsShouldProcess パラメーターが指定されている場合にのみ指定する必要があります。

DefaultParameterSetName (System.String) 省略可能な名前付きパラメーター。 使用するパラメーター セットを判断できない場合に Windows PowerShell ランタイムが使用を試みる既定のパラメーター セットを指定します。 この状況は、各パラメーターの一意のパラメーターを必須パラメーターに設定することで排除できることに注意してください。

既定のパラメーター セット名が指定されている場合でも、Windows PowerShell で既定のパラメーター セットを使用できないケースが 1 つあります。 Windows PowerShell ランタイムでは、オブジェクトの種類のみに基づいてパラメーター セットを区別することはできません。 たとえば、ファイル パスとして文字列を受け取る 1 つのパラメーター セットと、FileInfo オブジェクトを直接受け取る別のセットがある場合、Windows PowerShell はコマンドレットに渡された値に基づいて使用するパラメーター セットを決定できず、既定のパラメーター セットも使用しません。 この場合、既定のパラメーター セット名を指定した場合でも、Windows PowerShell はあいまいなパラメーター セットのエラー メッセージをスローします。

SupportsTransactions (System.Boolean) 省略可能な名前付きパラメーター。 True は、コマンドレットをトランザクション内で使用できることを示します。 True を指定すると、Windows PowerShell ランタイムは、コマンドレットのパラメーター リストに UseTransaction パラメーターを追加します。 既定値 Falseは、コマンドレットをトランザクション内で使用できないことを示します。

注釈

  • 動詞と名詞を組み合わせて使用して、登録済みのコマンドレットを識別し、スクリプト内でコマンドレットを呼び出します。

  • Windows PowerShell コンソールからコマンドレットを呼び出すと、コマンドは次のコマンドのようになります。

VerbName-NounName

  • Windows PowerShell の外部でリソースを変更するすべてのコマンドレットには、コマンドレット属性を宣言するときに SupportsShouldProcess キーワードを含める必要があります。これにより、コマンドレットは、コマンドレットのアクションを実行する前に、System.Management.Automation.Cmdlet.ShouldProcess メソッドを呼び出すことができます。 System.Management.Automation.Cmdlet.ShouldProcess 呼び出しで falseが返された場合は、アクションを実行しないでください。 System.Management.Automation.Cmdlet.ShouldProcess 呼び出しによって生成される確認要求の詳細については、「確認の要求」を参照してください。

Confirm および WhatIf コマンドレット パラメーターは、System.Management.Automation.Cmdlet.ShouldProcess 呼び出し サポートするコマンドレットでのみ使用できます。

次のクラス定義では、コマンドレット属性を使用して、ローカル コンピューターで実行されているプロセスに関する情報を取得する Get-Proc コマンドレットの .NET Framework クラスを識別します。

[Cmdlet(VerbsCommon.Get, "Proc")]
public class GetProcCommand : Cmdlet

Get-Proc コマンドレットの詳細については、GetProc チュートリアル 参照してください。

こちらもご覧ください

Windows PowerShell コマンドレット の作成