2015-04-24 80 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替換它。

相關問題