Windows Server 2003 開機後、用戶未登錄時,自動在後台運行某 .bat 腳本,不顯示黑框,掛載為系統服務/進程。
| 方法 | 可行性 | 備註 |
|---|---|---|
| 註冊為 Windows 服務 | ❌ 失敗 | BAT 非標準服務程序,Service Control Manager 無法直接管理 |
| 計劃任務 | ✅ 推薦 | 設置「無論用戶是否登錄都運行」,勾選「使用最高權限」,觸發器選「啟動時」 |
| 啟動文件夾/註冊表 Run | ⚠️ 需登錄 | 僅在用戶登錄後生效 |
| 第三方工具 | ✅ 可行 | 如 NSSM、FireDaemon 將任意可執行文件包裝為服務 |
C:\Scripts\startup.bat)。SYSTEM 或管理員帳號,勾選「無論用戶是否登錄都運行」。cmd.exe,參數填 /c "C:\Scripts\startup.bat"。在 BAT 內部開頭添加:
@echo off
if not "%1"=="hide" (
start /min cmd /c "%~f0" hide
exit /b
)
:: 實際業務邏輯...
或使用 VBScript 包裝:
CreateObject("Wscript.Shell").Run "cmd /c C:\Scripts\startup.bat", 0, False
保存為 .vbs,計劃任務直接調用該 .vbs 文件。