如何在 Azure 自动化 Runbook 中捕获调试流
原始产品版本:Azure 自动化
原始 KB 编号: 4022768
摘要
默认情况下,Azure 自动化不捕获任何调试流数据。 如果 Runbook 配置为捕获,则仅捕获输出、错误和警告数据以及详细数据。
若要捕获调试流数据,必须在 Runbook 中执行两个操作:
- 设置变量 $GLOBAL:DebugPreference=“Continue” ,该变量指示 PowerShell 在遇到调试消息时继续。 $GLOBAL: 部分告知 PowerShell 在全局范围内执行此操作,而不是在执行语句时脚本位于的任何本地范围内执行此操作。
- 将未捕获的调试流重定向到我们捕获的流(例如输出)。 这是通过针对要执行的语句设置 PowerShell 重定向来完成的。 有关 PowerShell 重定向的详细信息,请参阅 About_Redirection。
示例:
给定以下 Runbook:
Write-Output "This is an output message."
Write-Debug "This is a debug message."
如果按原样执行此 Runbook,则 Azure 自动化 中 Runbook 作业的输出窗格将显示以下内容:
This is an output message.
给定以下 Runbook:
Write-Output "This is an output message."
$GLOBAL:DebugPreference="Continue"
Write-Debug "This is a debug message." 5>&1
如果执行此 Runbook,输出窗格现在将显示以下内容:
This is an output message.
This is a debug message.
这是因为语句$GLOBAL:DebugPreference=“Continue”告知 PowerShell 显示调试消息,然后继续,并在任何语句的末尾添加 5>&1,这指示 PowerShell 将流 5 (调试) 重定向到流 1 (输出) 。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 还可以向 Azure 反馈社区提交产品反馈。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈