Confirm-Parameter
With Windows PowerShell you can specify -CONFIRM on commands that have a side-effect on the system and it will ask you whether to perfmon the action or not. e.g.
PS> Stop-Process 7004 -Confirm Confirm Are you sure you want to perform this action? Performing operation "Stop-Process" on Target "calc (7004)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y PS>
But you can also configure the system to automatically confirm operations based upon their impact on the system. When developers write their cmdlets, they can declare the impact of their commands on the system: "HIGH", "MEDIUM", "LOW". For instance, the Exchange command for Removing a Mailbox is declared to have a HIGH impact. Stop-Process is defined as "MEDIUM". You can then set the variable: $ConfirmPreference to be the level that you want Automatic confirmation turned on. In the example below, we try to stop CALC with $ConfirmPreference set at LOW, MEDIUM, and HIGH. Notice that autoconfirmation kicks in when it is set to LOW or MEDIUM but not when it is set to HIGH.
PS> Calc PS> $ConfirmPreference="low" PS> Stop-Process -ProcessName calc Confirm Are you sure you want to perform this action? Performing operation "Stop-Process" on Target "calc (5852)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): n PS> $ConfirmPreference="Medium" PS> Stop-Process -ProcessName calc Confirm Are you sure you want to perform this action? Performing operation "Stop-Process" on Target "calc (5852)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): n PS> $ConfirmPreference="High" PS> Stop-Process -ProcessName calc PS>
The default value of $ConfirmPreference is "High".
Enjoy
Jeffrey Snover [MSFT] Windows PowerShell/MMC Architect
When confirmation is turned on by $ConfirmPreference, you can turn it off for any individual cmdlet invocation using "-Confirm:$false". You can also use "-Confirm:$false" to turn off default confirmation for high impact cmdlets such as Removing a Mailbox. Another way to turn off confirmation is by setting $ConfirmPreference to "None"; you can limit the effect by setting $script:ConfirmPreference etc, see "get-help about_scope" for more details.
PS> $ConfirmPreference="Medium" PS> stop-process -ProcessName calc -Confirm:$false PS> $ConfirmPreference = "None" PS> stop-process -ProcessName calc PS>
Confirmation may cause your script to fail if it is running in a non-interactive environment, so it is important to know how to turn confirmation off when necessary.
Jon Newman [MSFT] Windows PowerShell team
Link: http://blogs.msdn.com/b/powershell/archive/2006/12/15/confirmpreference.aspx