Cmdlet.ShouldProcess Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
ShouldProcess(String, String, String, ShouldProcessReason) |
Confirm the operation with the user. Cmdlets which make changes (e.g. delete files, stop services etc.) should call ShouldProcess to give the user the opportunity to confirm that the operation should actually be performed. This variant allows the caller to specify the complete text describing the operation, rather than just the name and action. |
ShouldProcess(String, String, String) |
Confirm the operation with the user. Cmdlets which make changes (e.g. delete files, stop services etc.) should call ShouldProcess to give the user the opportunity to confirm that the operation should actually be performed. This variant allows the caller to specify the complete text describing the operation, rather than just the name and action. |
ShouldProcess(String, String) |
Confirm the operation with the user. Cmdlets which make changes (e.g. delete files, stop services etc.) should call ShouldProcess to give the user the opportunity to confirm that the operation should actually be performed. This variant allows the caller to specify text for both the target resource and the action. |
ShouldProcess(String) |
Confirm the operation with the user. Cmdlets which make changes (e.g. delete files, stop services etc.) should call ShouldProcess to give the user the opportunity to confirm that the operation should actually be performed. |
ShouldProcess(String, String, String, ShouldProcessReason)
Confirm the operation with the user. Cmdlets which make changes (e.g. delete files, stop services etc.) should call ShouldProcess to give the user the opportunity to confirm that the operation should actually be performed.
This variant allows the caller to specify the complete text describing the operation, rather than just the name and action.
public:
bool ShouldProcess(System::String ^ verboseDescription, System::String ^ verboseWarning, System::String ^ caption, [Runtime::InteropServices::Out] System::Management::Automation::ShouldProcessReason % shouldProcessReason);
public bool ShouldProcess (string verboseDescription, string verboseWarning, string caption, out System.Management.Automation.ShouldProcessReason shouldProcessReason);
member this.ShouldProcess : string * string * string * ShouldProcessReason -> bool
Public Function ShouldProcess (verboseDescription As String, verboseWarning As String, caption As String, ByRef shouldProcessReason As ShouldProcessReason) As Boolean
Parameters
- verboseDescription
- String
Textual description of the action to be performed. This is what will be displayed to the user for ActionPreference.Continue.
- verboseWarning
- String
Textual query of whether the action should be performed, usually in the form of a question. This is what will be displayed to the user for ActionPreference.Inquire.
- caption
- String
Caption of the window which may be displayed
if the user is prompted whether or not to perform the action.
caption
may be displayed by some hosts, but not all.
- shouldProcessReason
- ShouldProcessReason
Indicates the reason(s) why ShouldProcess returned what it returned. Only the reasons enumerated in ShouldProcessReason are returned.
Returns
If ShouldProcess returns true, the operation should be performed. If ShouldProcess returns false, the operation should not be performed, and the Cmdlet should move on to the next target resource.
Exceptions
The pipeline has already been terminated, or was terminated during the execution of this method. The Cmdlet should generally just allow PipelineStoppedException to percolate up to the caller of ProcessRecord etc.
Not permitted at this time or from this thread. ShouldProcess may only be called during a call to this Cmdlet's implementation of ProcessRecord, BeginProcessing or EndProcessing, and only from that thread.
Examples
namespace Microsoft.Samples.Cmdlet
{
[Cmdlet(VerbsCommon.Remove,"myobjecttype3")]
public class RemoveMyObjectType3 : Cmdlet
{
[Parameter( Mandatory = true )]
public string Filename
{
get { return filename; }
set { filename = value; }
}
private string filename;
public override void ProcessRecord()
{
ShouldProcessReason shouldProcessReason;
if (ShouldProcess(
string.Format($"Deleting file {filename}"),
string.Format($"Are you sure you want to delete file {filename}?"),
"Delete file",
out shouldProcessReason))
{
// delete the object
}
}
}
}
Remarks
A Cmdlet should declare [Cmdlet( SupportsShouldProcess = true )] if-and-only-if it calls ShouldProcess before making changes.
ShouldProcess may only be called during a call to this Cmdlet's implementation of ProcessRecord, BeginProcessing or EndProcessing, and only from that thread.
ShouldProcess will take into account command-line settings and preference variables in determining what it should return and whether it should prompt the user.
See also
- ShouldContinue(String, String)
- ShouldContinue(String, String, Boolean, Boolean)
- ShouldProcess(String)
- ShouldProcess(String, String)
- ShouldProcess(String, String, String)
Applies to
ShouldProcess(String, String, String)
Confirm the operation with the user. Cmdlets which make changes (e.g. delete files, stop services etc.) should call ShouldProcess to give the user the opportunity to confirm that the operation should actually be performed.
This variant allows the caller to specify the complete text describing the operation, rather than just the name and action.
public:
bool ShouldProcess(System::String ^ verboseDescription, System::String ^ verboseWarning, System::String ^ caption);
public:
bool ShouldProcess(Platform::String ^ verboseDescription, Platform::String ^ verboseWarning, Platform::String ^ caption);
bool ShouldProcess(std::wstring const & verboseDescription, std::wstring const & verboseWarning, std::wstring const & caption);
public bool ShouldProcess (string verboseDescription, string verboseWarning, string caption);
member this.ShouldProcess : string * string * string -> bool
Public Function ShouldProcess (verboseDescription As String, verboseWarning As String, caption As String) As Boolean
Parameters
- verboseDescription
- String
Textual description of the action to be performed. This is what will be displayed to the user for ActionPreference.Continue.
- verboseWarning
- String
Textual query of whether the action should be performed, usually in the form of a question. This is what will be displayed to the user for ActionPreference.Inquire.
- caption
- String
Caption of the window which may be displayed
if the user is prompted whether or not to perform the action.
caption
may be displayed by some hosts, but not all.
Returns
If ShouldProcess returns true, the operation should be performed. If ShouldProcess returns false, the operation should not be performed, and the Cmdlet should move on to the next target resource.
Exceptions
The pipeline has already been terminated, or was terminated during the execution of this method. The Cmdlet should generally just allow PipelineStoppedException to percolate up to the caller of ProcessRecord etc.
Not permitted at this time or from this thread. ShouldProcess may only be called during a call to this Cmdlet's implementation of ProcessRecord, BeginProcessing or EndProcessing, and only from that thread.
Examples
namespace Microsoft.Samples.Cmdlet
{
[Cmdlet(VerbsCommon.Remove,"myobjecttype3")]
public class RemoveMyObjectType3 : Cmdlet
{
[Parameter( Mandatory = true )]
public string Filename
{
get { return filename; }
set { filename = value; }
}
private string filename;
public override void ProcessRecord()
{
if (ShouldProcess(
string.Format($"Deleting file {filename}"),
string.Format($"Are you sure you want to delete file {filename}?"),
"Delete file"))
{
// delete the object
}
}
}
}
Remarks
A Cmdlet should declare [Cmdlet( SupportsShouldProcess = true )] if-and-only-if it calls ShouldProcess before making changes.
ShouldProcess may only be called during a call to this Cmdlet's implementation of ProcessRecord, BeginProcessing or EndProcessing, and only from that thread.
ShouldProcess will take into account command-line settings and preference variables in determining what it should return and whether it should prompt the user.
See also
- ShouldContinue(String, String)
- ShouldContinue(String, String, Boolean, Boolean)
- ShouldProcess(String)
- ShouldProcess(String, String)
- ShouldProcess(String, String, String, ShouldProcessReason)
Applies to
ShouldProcess(String, String)
Confirm the operation with the user. Cmdlets which make changes (e.g. delete files, stop services etc.) should call ShouldProcess to give the user the opportunity to confirm that the operation should actually be performed.
This variant allows the caller to specify text for both the target resource and the action.
public:
bool ShouldProcess(System::String ^ target, System::String ^ action);
public:
bool ShouldProcess(Platform::String ^ target, Platform::String ^ action);
bool ShouldProcess(std::wstring const & target, std::wstring const & action);
public bool ShouldProcess (string target, string action);
member this.ShouldProcess : string * string -> bool
Public Function ShouldProcess (target As String, action As String) As Boolean
Parameters
- target
- String
Name of the target resource being acted upon. This will potentially be displayed to the user.
- action
- String
Name of the action which is being performed. This will potentially be displayed to the user. (default is Cmdlet name)
Returns
If ShouldProcess returns true, the operation should be performed. If ShouldProcess returns false, the operation should not be performed, and the Cmdlet should move on to the next target resource.
Exceptions
The pipeline has already been terminated, or was terminated during the execution of this method. The Cmdlet should generally just allow PipelineStoppedException to percolate up to the caller of ProcessRecord etc.
Not permitted at this time or from this thread. ShouldProcess may only be called during a call to this Cmdlet's implementation of ProcessRecord, BeginProcessing or EndProcessing, and only from that thread.
Examples
namespace Microsoft.Samples.Cmdlet
{
[Cmdlet(VerbsCommon.Remove,"myobjecttype2")]
public class RemoveMyObjectType2 : Cmdlet
{
[Parameter( Mandatory = true )]
public string Filename
{
get { return filename; }
set { filename = value; }
}
private string filename;
public override void ProcessRecord()
{
if (ShouldProcess(filename, "delete"))
{
// delete the object
}
}
}
}
Remarks
A Cmdlet should declare [Cmdlet( SupportsShouldProcess = true )] if-and-only-if it calls ShouldProcess before making changes.
ShouldProcess may only be called during a call to this Cmdlet's implementation of ProcessRecord, BeginProcessing or EndProcessing, and only from that thread.
ShouldProcess will take into account command-line settings and preference variables in determining what it should return and whether it should prompt the user.
See also
- ShouldContinue(String, String)
- ShouldContinue(String, String, Boolean, Boolean)
- ShouldProcess(String)
- ShouldProcess(String, String, String)
- ShouldProcess(String, String, String, ShouldProcessReason)
Applies to
ShouldProcess(String)
Confirm the operation with the user. Cmdlets which make changes (e.g. delete files, stop services etc.) should call ShouldProcess to give the user the opportunity to confirm that the operation should actually be performed.
public:
bool ShouldProcess(System::String ^ target);
public:
bool ShouldProcess(Platform::String ^ target);
bool ShouldProcess(std::wstring const & target);
public bool ShouldProcess (string target);
member this.ShouldProcess : string -> bool
Public Function ShouldProcess (target As String) As Boolean
Parameters
- target
- String
Name of the target resource being acted upon. This will potentially be displayed to the user.
Returns
If ShouldProcess returns true, the operation should be performed. If ShouldProcess returns false, the operation should not be performed, and the Cmdlet should move on to the next target resource.
Exceptions
The pipeline has already been terminated, or was terminated during the execution of this method. The Cmdlet should generally just allow PipelineStoppedException to percolate up to the caller of ProcessRecord etc.
Not permitted at this time or from this thread. ShouldProcess may only be called during a call to this Cmdlet's implementation of ProcessRecord, BeginProcessing or EndProcessing, and only from that thread.
Examples
namespace Microsoft.Samples.Cmdlet
{
[Cmdlet(VerbsCommon.Remove,"myobjecttype1")]
public class RemoveMyObjectType1 : Cmdlet
{
[Parameter( Mandatory = true )]
public string Filename
{
get { return filename; }
set { filename = value; }
}
private string filename;
public override void ProcessRecord()
{
if (ShouldProcess(filename))
{
// delete the object
}
}
}
}
Remarks
A Cmdlet should declare [Cmdlet( SupportsShouldProcess = true )] if-and-only-if it calls ShouldProcess before making changes.
ShouldProcess may only be called during a call to this Cmdlet's implementation of ProcessRecord, BeginProcessing or EndProcessing, and only from that thread.
ShouldProcess will take into account command-line settings and preference variables in determining what it should return and whether it should prompt the user.
See also
- ShouldContinue(String, String)
- ShouldContinue(String, String, Boolean, Boolean)
- ShouldProcess(String, String)
- ShouldProcess(String, String, String)
- ShouldProcess(String, String, String, ShouldProcessReason)