Uso de puntos de interrupción en scripts de Windows PowerShell

Completado

Un punto de interrupción pausa un script y proporciona un símbolo del sistema interactivo. En el símbolo del sistema interactivo, puede consultar o modificar valores de variable y, a continuación, continuar con el script. Los puntos de interrupción se usan para solucionar problemas de scripts cuando no se comportan según lo previsto.

En un símbolo del sistema de Windows PowerShell, puede establecer puntos de interrupción mediante el cmdlet Set-PSBreakPoint. Los puntos de interrupción se pueden establecer en función de la línea del script, un comando específico que se utilice o una variable específica que se use. En el ejemplo siguiente, se muestra cómo establecer un punto de interrupción en una línea específica de un script:

Set-PSBreakPoint -Script "MyScript.ps1" -Line 23

Al establecer un punto de interrupción basado en una línea, debe tener cuidado al editar el script. Al editar el script, puede agregar o quitar líneas, y el punto de interrupción no afectará al mismo código previsto inicialmente.

En el ejemplo siguiente, se muestra cómo establecer un punto de interrupción para un comando específico:

Set-PSBreakPoint -Command "Set-ADUser" -Script "MyScript.ps1"

Al establecer un punto de interrupción basado en un comando, puede incluir caracteres comodín. Por ejemplo, podría usar el valor *-ADUser para desencadenar un punto de interrupción para Get-ADUser, Set-ADUser, New-ADUser y Remove-ADUser.

Para establecer un punto de interrupción para una variable específica, haga lo siguiente:

Set-PSBreakPoint -Variable "computer" -Script "MyScript.ps1" -Mode ReadWrite

Puede usar el parámetro -Mode para las variables para identificar si desea la interrupción cuando el valor de la variable se lea, se escriba o en ambos casos. Los valores válidos son Read, Write y ReadWrite.

La acción predeterminada para Set-PSBreakPoint es break, que proporciona el símbolo del sistema interactivo. Sin embargo, puede usar el parámetro -Action para especificar el código que se va a ejecutar en su lugar. Esto le permite realizar operaciones complejas, como evaluar valores de variable y solo interrumpir si el valor está fuera de un intervalo específico.

Nota:

Los puntos de interrupción se almacenan en memoria en lugar de como parte del script. Los puntos de interrupción no se comparten entre varios símbolos del sistema de Windows PowerShell y se quitan cuando se cierra el símbolo del sistema.

PowerShell ISE

En el Entorno de scripting integrado (Windows PowerShell ISE), puede establecer puntos de interrupción en función de la línea. Las opciones relacionadas con los puntos de interrupción se encuentran en el menú Depurar. Las líneas que configure como puntos de interrupción están resaltadas, lo que facilita su identificación. Además, en Windows PowerShell ISE, al agregar o quitar líneas al script, los puntos de interrupción se actualizan automáticamente con el número de línea correcto.

Visual Studio Code

Microsoft Visual Studio Code permite establecer y usar puntos de interrupción con opciones más avanzadas que PowerShell ISE. Puede configurar puntos de interrupción condicionales que se desencadenan cuando las variables están fuera de un intervalo o coinciden con un valor específico.

La información sobre el contenido de las variables también es más fácil de encontrar en Visual Studio Code. Después de que se desencadene un punto de interrupción y esté en el depurador, hay una sección de variables que muestra el contenido de la variable para que no tenga que interrogarla.