Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

將批處理文件註冊為 Windows 服務的兩種方案實戰

編輯:系統常見問題解答

需求:系統啟動時自動運行 startagent.bat。嘗試 sc create 直接註冊 .bat 失敗 (錯誤 5/1053),最終採用 srvany.exe 方案成功。

方案一:sc create (失敗)

sc create MyService binPath= "C:\Path\startagent.bat" start= auto

報錯:錯誤 5: 拒絕訪問、錯誤 1053: 服務未及時響應。原因:.bat 不符合服務程序規範 (無 ServiceMain 入口)。

方案二:instsrv.exe + srvany.exe (成功)

工具來源: Windows Resource Kit。

  1. 註冊服務:
    instsrv MyService C:\Tools\srvany.exe
  2. 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService
  3. 新建項 Parameters
  4. 在 Parameters 下新建字符串值:
    • Application = C:\Full\Path\startagent.bat
    • AppDirectory = C:\Full\Path\ (工作目錄,必須設置)
  5. 啟動服務:net start MyService 或服務管理器中啟動。

遇到的問題與補充

  • 服務啟動/停止似乎無效,需重啟生效 → 可能與批處理內部邏輯有關。
  • 配置文件被還原 → 排查是否有其他進程覆寫。
  • 刪除服務:sc delete MyService 或直接刪除註冊表對應項。

關鍵點: AppDirectory 不可缺失;srvany.exe 充當服務宿主,讀取註冊表啟動指定程序。

Copyright © Windows教程網 All Rights Reserved