CmdletProvider.ShouldProcess Method (String, String, String, ShouldProcessReason)


Updated: April 27, 2016

Applies To: Windows PowerShell

Confirms an operation with the user sending a description of the action to be performed, a query asking if the action should be performed, a caption for the query window, and the reason for the query.

Namespace:   System.Management.Automation.Provider
Assembly:  System.Management.Automation (in System.Management.Automation.dll)

public bool ShouldProcess(
	string verboseDescription,
	string verboseWarning,
	string caption,
	out ShouldProcessReason shouldProcessReason


Type: System.String

A description of the action to be performed. This description is displayed to the user for ActionPreference.Continue.

Type: System.String

A query of whether the action should be performed, usually in the form of a question. This query is displayed to the user for ActionPreference.Inquire.

Type: System.String

The caption for the confirmation message. This caption may or may not be displayed by the host.

Type: System.Management.Automation.ShouldProcessReason

A ShouldProcessReason enumeration constant.

Return Value

Type: System.Boolean

A Boolean value that indicates true when the user wants the provider to perform the operation. If false is returned, the operation should not be performed and the provider should move to the next resource.

Exception Condition

The pipeline is stopped. The pipeline was terminated either before the call was made or while the call was in progress. In general, the provider should allow the caller of the processing record method to catch this exception.

Also, if the pipeline was terminated because of ActionPreference.Stop or ActionPreference.Inquire, the command failure will ultimately be ActionPreferenceStopException.

To call this method, the provider must specify that it supports calls to the ShouldProcess(String, String, String) method when the CmdletProvider attribute is declared.

When the provider calls the ShouldProcess(String, String, String) method, the Windows PowerShell runtime handles any command-line settings or preference variables when it determines what is shown to the user or what should be returned.

Windows PowerShell provides two methods that the Windows PowerShell provider can call to confirm an operation with the user: ShouldProcess and ShouldContinue. The second method, the ShouldContinue method, is used to get a confirmation from the user in cases where the change is significant or when you want to provide yes-to-all and no-to-all options to the user. In addition, in contrast to ShouldProcess calls, a call to ShouldContinue is not affected by command-line settings or preference variables; the query is always displayed to the user.

For more information about providers, see Windows PowerShell Providers [ps].

Return to top

Community Additions