监控窗口或 RDP 会话

监控窗口或 RDP 会话

在工作中,我经常使用 RDP 在远程 Windows 计算机上执行任务。这些任务可能需要很长时间才能完成(数小时/数天/数周),因此我最终会同时打开许多 RDP 会话,每个会话都在运行一项任务。

我遇到的问题是,我必须监视每个 RDP 会话才能知道任务何时完成,这耗费了我大量的时间/精力。

我想要的是某种警报。以下任何一项都可以成为有用的触发器:

  • RDP 会话变得安静(因为日志停止滚动)
  • 日志停止滚动(这可能是一个通过电子邮件发送给我的远程日志监控工具?)
  • 日志中出现某个词,例如“完成”(这可能是最好的解决方案)
  • RDP 窗口中 x 段时间内没有任何活动
  • 还有别的吗?

似乎 Windows 世界中一定存在这样的工具,但我还没有找到它们。

答案1

您可以使用 tasklist 通过批处理文件执行此操作。您可以将其更改为进程 ID 或您用来监视它的任何进程。显然,无论您使用的进程名称是什么,请将 notepad.exe 替换为该进程的名称。

:start
tasklist /fi "imagename eq notepad.exe" | findstr notepad.exe
if %errorlevel%==1 goto end
goto start
:end
echo %date% %time% The [name of process] is complete on %computername% >> \\unc\sharename\filename.txt
shutdown /l

这样,您的 RDP 会话将被注销,并且您将拥有一个完成时的日志文件。

答案2

我不确定它是否适用于 RDP 窗口内容,但是AutoIT 脚本引擎能够等待某些关键字出现在窗口内 - 您可能想尝试一下。

答案3

使用 RDP 当然是执行任务的一种方式,但我建议您改为实施 WMI 脚本或 powershell 脚本来启动进程,并定期轮询日志(logparser、powershell 任何工具都可以),或者让您运行的脚本在进程退出时将日志发送给您。我建议您发布一个关于如何自动化您当前手动执行的操作的问题。

相关内容