2015-04-24 81 views
0

我创建了一个批处理文件,以在特定服务停止时运行。 批处理文件应该停止相关软件的运行,重新启动一些服务(停止/启动)并再次启动软件。批处理文件从Windows服务启动时不会启动程序

它了一个简单的代码:

@echo off 
Taskkill /F /IM program1.exe 
Taskkill /F /IM program2.exe 
timeout /t 5 
net stop service1 
net stop service2 && net start service2 
net start service3 
timeout /t 2 
start C:/path/program1.exe 
start C:/path/program2.exe 

已设置的服务为运行该批处理文件作为第一个故障恢复。 批处理文件通过快捷方式链接以便能够以管理员身份运行它。

这可以直接运行批处理文件,但当它由服务恢复执行时,软件的启动失败时可以很好地工作。 有没有人有任何想法可能是错的?

+0

什么是“通过快捷方式链接批处理文件以便能够以管理员身份运行”是什么意思? – aphoria

+0

为了能够执行批处理文件,需要以管理员身份运行(右键单击并以“以管理员身份运行”)。由于此文件正在被另一个程序执行,因此它不会以管理员身份运行。一个快速解决方案(发布在另一个问题上)是创建一个快捷方式,然后给予管理员权限。 – Pentabuzz

+0

我的猜测是,这种方法无法使用提升的权限作为计划任务运行批处理。可以检查计划任务上的“以最高权限运行”复选框吗? – aphoria

回答

0

在某些情况下timeout /t 5可能会导致麻烦。尝试用PING -n 6 127.0.0.1 > NUL替换它。

相关问题