Windows 7 Windows 7 bat文件未作为服务启动

Windows 7 Windows 7 bat文件未作为服务启动,windows-7,windows-services,batch-file,Windows 7,Windows Services,Batch File,我正在运行一个Windows服务,它在启动期间启动一个简单的bat文件,但该服务不会启动。如果我尝试从服务GUI手动运行它,我会收到以下错误消息 错误1053:服务未及时响应启动或控制请求 这似乎是服务启动期间的常见错误,但我在其他答案中没有发现类似问题。我使用以下命令从命令行创建了服务 C:\Users\Administrator>sc create service_name binpath= c:\service.bat start= auto [SC] CreateService S

我正在运行一个Windows服务,它在启动期间启动一个简单的bat文件,但该服务不会启动。如果我尝试从服务GUI手动运行它,我会收到以下错误消息

错误1053:服务未及时响应启动或控制请求

这似乎是服务启动期间的常见错误,但我在其他答案中没有发现类似问题。我使用以下命令从命令行创建了服务

C:\Users\Administrator>sc create service_name binpath= c:\service.bat start= auto
[SC] CreateService SUCCESS
然后我用它运行

C:\Users\Administrator>sc start service_name
但是,我收到了错误消息:

[SC]StartService失败5:

访问被拒绝


如果以管理员身份在命令提示符下运行,则不会收到拒绝访问消息,但会收到1053错误。我想作为Windows服务运行一个bat文件应该不会那么困难。有什么想法吗?

由于批处理文件无法与Windows服务子系统协商/交互,因此出现第一个错误。Windows启动服务时,操作系统会等待几秒钟,以便服务报告已正确启动。如果此信号从未到达(与批处理文件一样,批处理文件对服务一无所知),Windows将报告错误#1053


您需要一个“包装器”应用程序将批处理文件作为服务运行。这可能对您有用,但您也应该研究功能更全面的商业替代方案。

您不能将批处理文件作为这样的服务运行,正如CoreTech所说,您需要一个包装器来正确运行它。这似乎就是问题所在。现在,命令行中的srvany和instsrv可以正常工作,并提供c:\Tools\instsrv.exe myservice c:\Tools\srvany.exe。首先需要将bat文件编译成exe,然后通过regedit对服务寄存器(HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>services>myservice)值进行2次更改。我添加了新的键命名参数,字符串值为AppDirectory,应用程序值为c:\mypath和c:\mypath\mybat.exe。有了这些改变,它现在就可以工作了。非常感谢您的帮助:)