Resumen
De forma predeterminada, Azure Automation no captura ningún dato de flujo de depuración. Solo se capturan datos de salida, error y advertencia, así como datos detallados si el runbook está configurado para capturarlo.
Para capturar datos de flujo de depuración, debe realizar dos acciones en los runbooks:
- Establezca la variable $GLOBAL:DebugPreference="Continue" que indica a PowerShell que continúe siempre que se encuentre un mensaje de depuración. La parte $GLOBAL: indica a PowerShell que lo haga en el ámbito global en lugar de en el ámbito local en el que se encuentra el script en el momento en que se ejecuta la instrucción.
- Redirigir el flujo de depuración que no capturamos a una secuencia que capturamos, como la salida. Para ello, establezca el redireccionamiento de PowerShell en la instrucción que se va a ejecutar. Para obtener más información sobre el redireccionamiento de PowerShell, consulte About_Redirection.
Ejemplo:
Dado el siguiente runbook:
Write-Output "This is an output message."
Write-Debug "This is a debug message."
Si este runbook se ejecutara tal como está, el panel de salida del trabajo de runbook en Azure Automation mostraría lo siguiente:
This is an output message.
Dado el siguiente runbook:
Write-Output "This is an output message."
$GLOBAL:DebugPreference="Continue"
Write-Debug "This is a debug message." 5>&1
Si se ejecutara este runbook, el panel de salida ahora mostraría lo siguiente:
This is an output message.
This is a debug message.
Esto ocurre porque la instrucción $GLOBAL:DebugPreference="Continue" indica a PowerShell que muestre los mensajes de depuración y, a continuación, continúe y la adición de 5>&1 al final de cualquier instrucción, lo que indica a PowerShell que redirija la secuencia 5 (depuración) a la secuencia 1 (salida).