首先抱歉我的英语很差。我真的不知道如何表达这个问题,但我可以向你解释我的意图,这样可能有助于你更好地理解我。
我正在开发一个工具,当windows服务出现故障时通知你。
我遵循的确切逻辑是:
- 当服务正常停机时记录一个事件,您可以在windows事件查看器中看到。我已经创建了一个计划任务,当服务根据windows事件日志(感谢XML过滤器)停止时将被触发。
- 此任务触发一个powershell脚本,该脚本向一个电报机器人发送请求,该电报机器人将在服务终止时通知我。
当我手动停止服务(From service)时,这个过程工作得很好。msc或Powershell的停止服务)。目标是对服务进行实时跟踪,并在本例中正常工作。
问题来了:我不能强迫服务崩溃,以查看它是否在windows事件查看器中记录信息。
我的问题是:
- 如果发生错误,窗口会优雅地关闭服务(如使用Stop-Service时),还是会杀死进程而不注册任何日志信息(如使用taskkill/f时)?
- 还有其他建议吗?有没有另一种方法可以实时跟踪windows服务并触发脚本,而不需要每隔一定时间运行一次循环?
希望你们都能理解我:)
如果一个服务崩溃了,你仍然应该在Windows Logs>系统。将担任"服务控制经理"and事件ID应该是7031或7032或7034。
所以你可以为这些添加一个过滤器,并让你的PowerShell脚本也在这些类型的事件上运行。