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

DOS 指令掌控 Windows 服務:net start/stop 與 sc 指令完整實戰指南

編輯:XP 系統應用技巧

雖然圖形介面主流,但命令列控制 Windows 服務仍是系統管理員、自動化腳本、遠端管理、安全模式排錯的核心技能。本文詳細說明 net 與 sc 兩大指令體系的語法、差異、進階用法與實戰範例。

一、net 指令:簡潔直觀,適合互動式操作

基本語法

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 (Service Control) 指令:功能強大,適合腳本自動化

sc 直接與服務控制管理器 (SCM) 通訊,支援遠端電腦、詳細狀態查詢、服務安裝/移除/設定修改等進階功能。

基本語法

sc [\\RemoteServer] start <服務名稱>
sc [\\RemoteServer] stop <服務名稱>
sc [\\RemoteServer] pause <服務名稱>
sc [\\RemoteServer] continue <服務名稱>
sc [\\RemoteServer] interrogate <服務名稱>  強制更新狀態

啟動/停止實戰範例 (Apache 服務)

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 進階功能速查

功能指令範例說明
查詢服務狀態sc query Apache_pn顯示 TYPE、STATE、PID、啟動類型等
查詢所有服務sc query state= allstate= 後有空格,列出全部服務
設定啟動類型sc config Apache_pn start= autostart= 後有空格;auto/demand/disabled
建立服務sc create MySvc binPath= "C:\Path\svc.exe" start= autobinPath= 需雙引號;路徑含空格需雙層引號
刪除服務sc delete MySvc服務必須先停止
遠端操作sc \\Server01 start wuauserv需遠端電腦啟用 RPC、檔案印表機共享、管理員權限
取得服務啟動參數sc qc Apache_pnQuery Config,顯示 BINARY_PATH_NAME、LOAD_ORDER_GROUP 等

三、net vs sc 選擇指南

場景建議指令理由
互動式快速啟停net語法簡短、輸出易讀
批次檔/自動化腳本sc回傳碼標準、支援詳細狀態解析、遠端操作
修改服務設定(啟動類型/路徑/相依性)sc confignet 無此功能
建立/刪除服務sc create/deletenet 無此功能
遠端管理sc \\Servernet 不支援遠端

四、實戰腳本範例:服務狀態檢查與自動重啟

@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 服務生命週期。

Copyright © Windows教程網 All Rights Reserved