Difference between Cmdlet.EndProcessing and Cmdlet.StopProcessing

Question:

When writing Powershell cmdlets, what is the difference between EndProcessing and StopProcessing? They sound the same, their descriptions are just about the same, and latter doesn’t appear in the cmdlet lifecycle documentation.

Answer:

StopProcessing is called if the execution of the CmdLet is cancelled (pressing CNTRL-C will cause StopProcessing to be executed).

EndProcessing is called if the execution of the CmdLet ends normally.

I typically use StopProcessing and EndProcessing to do the same thing… that is to clean up resources that were provisioned during BeginProcessing or ProcessRecord, in some cases though there is some difference between what actions each provides.

It seems like a mistake that it is not shown in the life cycle documentation.

Source:

Difference between Cmdlet.EndProcessing and Cmdlet.StopProcessing by licensed under CC BY-SA | With most appropriate answer!

Leave a Reply