如何在Windows服务启动之前运行一些外部代码

时间:2010-10-18 18:11:35

标签: windows-services autostart

这可能听起来很疯狂,但这是一个真正的问题:我有一个ISV提供的Windows服务,我无法改变。服务中存在一个错误,它不会“清理”启动时应该清理的一些数据。

作为一种解决方法,在供应商可以修复错误之前,我想让其他进程或脚本始终在此问题服务启动之前运行。

例如:我可以创建第二个“监视器”服务,该服务与具有服务依赖性的问题服务相关联。第二个服务将在允许启动问题服务之前执行此变通/清理。但这似乎是解决一个简单问题的大锤。其他人对更简单的解决方案有想法吗?

变通方法代码很简单,例如,可以在PowerShell脚本中生效。

2 个答案:

答案 0 :(得分:1)

创建一个新的service,用于执行您需要的操作,然后在其上强制dependency

答案 1 :(得分:0)

您应该查看我们的Service Protector application,它可以在启动其他服务之前运行预启动脚本。它也可能过度,但有时候购买目标实用程序更好,而不是将您的编程时间投入到一次性/一次性解决方案中。

在任何情况下,如果您的新服务在完成其清理工作之前未将其自身声明为“已启动”,那么您编写其他服务并强制执行依赖项的解决方案应该可行。 。如果没有,Windows可能会很快启动您的实际服务。

祝你好运。