雖然圖形介面主流,但命令列控制 Windows 服務仍是系統管理員、自動化腳本、遠端管理、安全模式排錯的核心技能。本文詳細說明 net 與 sc 兩大指令體系的語法、差異、進階用法與實戰範例。
net start <服務名稱> 啟動服務
net stop <服務名稱> 停止服務
net pause <服務名稱> 暫停服務
net continue <服務名稱> 繼續服務
服務名稱含空格時,必須用雙引號括起:
net start "Windows Firewall/Internet Connection Sharing (ICS)"
net start 列出目前正在執行的服務
net start | find "Apache" 篩選特定服務
net help service 顯示服務相關說明
sc 直接與服務控制管理器 (SCM) 通訊,支援遠端電腦、詳細狀態查詢、服務安裝/移除/設定修改等進階功能。
sc [\\RemoteServer] start <服務名稱>
sc [\\RemoteServer] stop <服務名稱>
sc [\\RemoteServer] pause <服務名稱>
sc [\\RemoteServer] continue <服務名稱>
sc [\\RemoteServer] interrogate <服務名稱> 強制更新狀態
C:\>sc start Apache_pn
SERVICE_NAME: Apache_pn
TYPE : 10 WIN32_OWN_PROCESS
STATE : 2 START_PENDING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0
SERVICE_EXIT_CODE : 0
CHECKPOINT : 0x0
WAIT_HINT : 0x7d0
PID : 8756
C:\>sc stop Apache_pn
SERVICE_NAME: Apache_pn
TYPE : 10 WIN32_OWN_PROCESS
STATE : 3 STOP_PENDING
WIN32_EXIT_CODE : 0
...
回傳詳細狀態資訊(STATE、PID、WAIT_HINT、EXIT_CODE),利於腳本判斷執行結果。
| 功能 | 指令範例 | 說明 |
|---|---|---|
| 查詢服務狀態 | sc query Apache_pn | 顯示 TYPE、STATE、PID、啟動類型等 |
| 查詢所有服務 | sc query state= all | state= 後有空格,列出全部服務 |
| 設定啟動類型 | sc config Apache_pn start= auto | start= 後有空格;auto/demand/disabled |
| 建立服務 | sc create MySvc binPath= "C:\Path\svc.exe" start= auto | binPath= 需雙引號;路徑含空格需雙層引號 |
| 刪除服務 | sc delete MySvc | 服務必須先停止 |
| 遠端操作 | sc \\Server01 start wuauserv | 需遠端電腦啟用 RPC、檔案印表機共享、管理員權限 |
| 取得服務啟動參數 | sc qc Apache_pn | Query Config,顯示 BINARY_PATH_NAME、LOAD_ORDER_GROUP 等 |
| 場景 | 建議指令 | 理由 |
|---|---|---|
| 互動式快速啟停 | net | 語法簡短、輸出易讀 |
| 批次檔/自動化腳本 | sc | 回傳碼標準、支援詳細狀態解析、遠端操作 |
| 修改服務設定(啟動類型/路徑/相依性) | sc config | net 無此功能 |
| 建立/刪除服務 | sc create/delete | net 無此功能 |
| 遠端管理 | sc \\Server | net 不支援遠端 |
@echo off
set SVC=wuauserv
sc query %SVC% | find "RUNNING" >nul
if %errorlevel% neq 0 (
echo [%date% %time%] %SVC% 未執行,嘗試啟動...
sc start %SVC%
timeout /t 5
sc query %SVC% | find "RUNNING" >nul
if %errorlevel% equ 0 (
echo [%date% %time%] %SVC% 啟動成功
) else (
echo [%date% %time%] %SVC% 啟動失敗,需人工介入
)
) else (
echo [%date% %time%] %SVC% 正常執行中
)
掌握 net 與 sc,讓您在無圖形介面環境(安全模式、Core 版本、遠端 SSH/PowerShell 會話)下依然能精準掌控 Windows 服務生命週期。