NAME
Set-PSDebug
SYNOPSIS
Turns script debugging features on and off, sets the trace level, and toggles strict mode.SYNTAX
Set-PSDebug [-Off] [
] Set-PSDebug [-Step] [-Strict] [-Trace
] [ ] DESCRIPTION
The Set-PSDebug cmdlet turns script debugging features on and off, sets the trace level, and toggles strict mode.
When the Trace parameter has a value of 1, each line of script is traced as it runs. When the parameter has a value of 2, variable assignments, function calls, and script calls are also traced. If the Step parameter is specified, you are prompted before each line of the script runs.PARAMETERS
-Off [
Indicates that this cmdlet turns off all script debugging features.] A `Set-StrictMode -Off` command disables the verification set by a `Set-PSDebug -Strict` command. For more
information, see Set-StrictMode.
Required? false Position? named Default value False Accept pipeline input? False Accept wildcard characters? false-Step [
Indicates that this cmdlet turns on script stepping. Before each line runs, Windows PowerShell prompts you to stop, continue, or enter a new interpreter level to inspect the state of the script. Specifying the Step parameter automatically sets a trace level of 1. Required? false Position? named Default value False Accept pipeline input? False Accept wildcard characters? false] -Strict [
Indicates that Windows PowerShell returns an exception if a variable is referenced before a value is assigned to the variable.] A `Set-StrictMode -Off` command disables the verification set by a `Set-PSDebug -Strict` command. For more
information, see Set-StrictMode .
Required? false Position? named Default value False Accept pipeline input? False Accept wildcard characters? false-Trace
Specifies the trace level. The acceptable values for this parameter are:- 1: Trace script lines as they run.
- 0: Turn script tracing off.
- 2: Trace script lines, variable assignments, function calls, and scripts.
Required? false Position? named Default value None Accept pipeline input? False Accept wildcard characters? falseThis cmdlet supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. For more information, see about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216). INPUTS
None You cannot pipe input to this cmdlet.OUTPUTS
None This cmdlet does not return any output.NOTES
Example 1: Set the trace level to 2
PS C:\>Set-PSDebug -Trace 2; foreach ($i in 1..3) {$i}
DEBUG: 1+ Set-PsDebug -Trace 2; foreach ($i in 1..3) {$i}
DEBUG: 1+ Set-PsDebug -Trace 2; foreach ($i in 1..3) {$i}
1DEBUG: 1+ Set-PsDebug -Trace 2; foreach ($i in 1..3) {$i}
2DEBUG: 1+ Set-PsDebug -Trace 2; foreach ($i in 1..3) {$i}
3 This command sets the trace level to 2, and then runs a script that displays the numbers 1, 2, and 3.Example 2: Turn on stepping
PS C:\>Set-PSDebug -Step; foreach ($i in 1..3) {$i}
DEBUG: 1+ Set-PsDebug -Step; foreach ($i in 1..3) {$i}
Continue with this operation?1+ Set-PsDebug -Step; foreach ($i in 1..3) {$i}
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):aDEBUG: 1+ Set-PsDebug -Step; foreach ($i in 1..3) {$i}
1 2 3 This command turns on stepping, and then runs a script that displays the numbers 1, 2, and 3.Example 3: Turn off debug features
PS C:\>Set-PSDebug -Off; foreach ($i in 1..3) {$i}
1 2 3 This command turns off all debugging features, and then runs a script that displays the numbers 1, 2, and 3.Example 4: Use strict mode
PS C:\>set-psdebug -Strict; $NewVar
The variable $NewVar cannot be retrieved because it has not been set yet.
At line:1 char:28+ Set-PsDebug -strict;$NewVar <<<<
This command puts Windows PowerShell in strict mode, and then attempts to access a variable that has not yet been set.RELATED LINKS
Online Version: http://go.microsoft.com/fwlink/?LinkId=821515Set-StrictMode