获取挂起脚本的行号



我最近"继承的";通过任务调度程序在后台执行任务的复杂PowerShell脚本。现在我们看到脚本在某些情况下挂起,但直到现在我还无法确定根本原因。

有没有一种方法可以将调试器添加到已经运行的脚本中,这样我就可以在不重写大部分内容的情况下获得当前行号?在当前状态下,脚本的可维护性低于20k行代码。

我尝试检查WMI的属性,但没有发现任何有用的东西。我确实找到了一个可能有用的https://powershellexplained.com/2017-02-05-Powershell-Chronometer-line-by-line-script-execution-times/计时码表脚本。

我还编写了一个调试包装器,但挂起只在某些情况下发生。我无法按需复制。

感谢

您看过Enter-PSHostProcess吗?

Enter-PSHostProcesscmdlet连接到本地进程并进入与本地进程的交互式会话。远程交互式会话不是创建一个新进程来承载PowerShell并运行远程会话,而是在已经运行PowerShell的现有进程中运行。当您在指定进程上与远程会话交互时,可以枚举正在运行的运行空间,然后通过运行Debug-RunspaceEnable-RunspaceDebug来选择要调试的运行空间

输入PSHostProcess

最新更新