確認を要求する方法
この例では 、System.Management.Automation.Cmdlet.ShouldProcess メソッドと System.Management.Automation.Cmdlet.ShouldContinue メソッドを呼び出して、アクションを実行する前にユーザーに確認を要求する方法を示します。
重要
これらの要求を処理する方法のWindows PowerShell要求の確認に関するページを参照してください。
確認を要求する
Cmdlet 属性
SupportsShouldProcess
の パラメーターが に設定されている必要がありますtrue
。 (関数の場合、これは CmdletBinding 属性のパラメーターです)。[Cmdlet(VerbsDiagnostic.Test, "RequestConfirmationTemplate1", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)]
注意
単独
SupportsShouldProcess
で を使用しても、ユーザーに確認を求めるメッセージが表示される保証はありません。 プロンプトは、 の値とアクションの$ConfirmPreference
影響によって決まります。 操作ConfirmImpact
の影響の重大度を設定するには、 を使用します。ユーザーが
Force
確認要求をオーバーライドできるよう、コマンドレットにパラメーターを追加します。[Parameter()] public SwitchParameter Force { get { return force; } set { force = value; } } private bool force;
if
System.Management.Automation.Cmdlet.ShouldProcessメソッドの戻り値を使用して、System.Management.Automation.Cmdlet.ShouldContinueメソッドが呼び出されるかどうかを判断するステートメントを追加します。if
System.Management.Automation.Cmdlet.ShouldContinueメソッドの戻り値と パラメーターの値を使用して、操作を実行するかどうかを決定する 2 番目のステートメントForce
を追加します。
例
次のコード例では 、System.Management.Automation.Cmdlet.ShouldProcess メソッドと System.Management.Automation.Cmdlet.ShouldContinue メソッドは 、System.Management.Automation.Cmdlet.ProcessRecord メソッドのオーバーライド内から呼び出されます。 ただし、他の入力処理メソッドからこれらのメソッドを呼び出す方法も可能です。
protected override void ProcessRecord()
{
if (ShouldProcess("ShouldProcess target"))
{
if (Force || ShouldContinue("", ""))
{
// Add code that performs the operation.
}
}
}
参照
Writing a Windows PowerShell Cmdlet (Windows PowerShell コマンドレットの記述)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示