我们有大约十台客户端计算机,从 Windows XP 到 Windows 7,它们都有一个在托盘中运行的小程序。这个程序需要一直运行,有时它会崩溃或用户退出程序。我们希望能够每小时左右检查一次,看看这个程序是否正在运行。如果它没有运行,就应该启动它。
我曾尝试在我们的一台服务器上使用 powershell 从远程计算机获取进程,如果找不到,则启动它。但是,这失败了,因为它无法以交互式用户身份启动该进程。
我尝试在任务计划程序中设置任务,但 Windows XP 任务计划程序不是很好或可配置。
我们希望这尽可能易于管理。最好的方法是什么?
答案1
您可以使用执行程序将可执行文件作为服务运行?
答案2
任务计划程序可以做到这一点,问题是它不会在失败时通知您。但你可以整理一个批处理文件并tlist(微软的免费工具)查看正在运行的进程。如果批处理文件没有根据 tlist 看到它正在运行,则只需启动它。如果找到了,则使用跳过所有内容并退出批处理文件。
答案3
您的基础设施中是否有 nagios 或任何监控系统??如果有,监控它就很简单。
否则,您可以使用 snmp 来完成这项工作。
答案4
如果您尚未运行 Nagios,我倾向于在监控机器上创建一个批处理文件,该文件将在每台客户端机器上运行通过 find 管道传输的 pslist。如果您没有看到可执行文件的名称,则表示它没有运行。您可以使用 Blat 向您发送警报。
如果您确实运行 Nagios,您可以在每个客户端上运行相同的操作作为 NSClient++ 检查,并使用 Nagios 收集结果。