手動停用服務優化後若出現異常,難以快速定位是哪個服務變更導致。利用 net start 或 sc query 輸出服務清單,配合 fc(檔案比較)指令,可精準找出差異服務。
net start > D:\svc_baseline.txtnet start > D:\svc_current.txtfc D:\svc_baseline.txt D:\svc_current.txt輸出會標示新增/移除/狀態變更的服務名稱(如 ServiceLayer)。
sc query state= all > D:\svc_detail.txt
# 包含驅動程式服務、停止狀態服務、啟動類型、錯誤控制等完整屬性
優化後諾基亞手機瀏覽服務失效 → 比較發現 ServiceLayer 從 Running 變 Stopped → services.msc 將其設為「自動」並啟動 → 故障排除。
$base = Get-Service | Sort-Object Name | Select-Object Name,Status,StartType
# 優化後
$cur = Get-Service | Sort-Object Name | Select-Object Name,Status,StartType
Compare-Object $base $cur -Property Name,Status,StartType -PassThru | Format-Table -AutoSize
將比較邏輯寫入排程任務,每日自動產生服務變更報表,實現持續合規監控。