使用 sc、tasklist 和 taskkill 優化服務和流程

最後更新: 29/10/2025
作者: 艾薩克
  • 進階使用 tasklist 和 taskkill 來審核和關閉進程,支援過濾器、CSV 和遠端執行。
  • 提供全面的服務管理,包括本地和遠端建立、查詢、啟動、停止和刪除服務。
  • 最佳實踐:最小權限、遠端預防措施以及負責任地使用 /F 和過濾器。

優化 Windows 中的服務和進程

如果你每天都使用Windows 系統,那麼控制哪些程式正在運作以及在程式卡住時如何應對,對於電腦的運行速度至關重要。幸運的是,借助一些原生命令,例如tasklist、taskkill 和 sc,你可以審核、篩選、停止和自動化本地及遠端電腦上的進程和服務。

在本實用指南中,我將一步步講解如何以不同格式列出進程、如何應用高級篩選器、如何安全地關閉凍結的應用程式以及如何精確地管理系統服務。所有內容都配有可直接複製貼上的真實範例、遠端存取警告以及實用技巧,您輕鬆駕馭控制台。

流程和服務:它們的相似之處和不同之處

在 Windows 系統中,進程是指正在執行的程序,它可以包含執行緒、執行任務,並在完成工作後終止。而服務則是一種系統元件,通常在後台運行,可以啟動、停止、恢復或重啟,並且根據設計,它會一直保持活動狀態,直到系統或管理員另行決定為止。

主要區別包括:進程可以在前台或後台運行,並在必要時終止;而服務則透過狀態(啟動、停止、暫停、繼續)進行管理,並且設計為持久運行。進程可以創建或控制服務,而服務反過來也可以啟動子進程。

如果您喜歡圖形介面,任務管理器(taskmgr.exe) 可以提供您目前系統的概覽:進程標籤顯示CPU、記憶體、GPU、網路及其狀態(包括常見的「未回應」),服務標籤顯示其進程 ID、狀態、啟動類型和製造商。但是,當您需要精確控制、自動化和遠端存取時,命令列是您的最佳選擇。

用於從控制台管理系統的關鍵工具

您需要掌握的基本實用程式包括:tasklist(用於列出進程)、taskkill(用於按進程 ID 或映像名稱終止進程)和sc (用於使用服務控制管理員管理服務)。此外, WMIC (用於透過控制台查詢 WMI)和query/qprocess命令也非常有用,它們可以按會話或使用者檢查進程。

使用這些命令,您可以產生 Excel 的 CSV 報表、建立無標題清單、按記憶體使用情況或狀態套用篩選器,並進行精確操作:從終止惡意 notepad.exe 到關閉由cmd.exe控制台啟動的整個子進程樹

使用任務清單列出流程:篩選器、格式和範例

要查看正在運行的進程,最直接的命令是`tasklist`。不帶任何選項,它會顯示鏡像名稱、進程 ID (PID)、會話和記憶體使用情況。但更有趣的是它的修飾符,這些修飾符允許你根據自己的喜好篩選和自訂輸出。

非常實用的參數包括:/V(詳細模式)、/SVC(顯示每個進程託管的服務)、/M(顯示哪些進程載入了特定的 DLL/EXE 檔案)、/FO(表格、清單、CSV 格式)、/NH(隱藏表格/CSV 檔案中的標題)和/FI(篩選器)。此外,還有/S/U/P參數,用於使用憑證進行遠端執行。

使用這些命令,您可以產生 Excel 的 CSV 報表、建立無標題清單、按記憶體使用情況或狀態套用篩選器,並進行精確操作:從終止惡意 notepad.exe 到關閉由cmd.exe控制台啟動的整個子進程樹。

要在桌面上查看完整的幫助訊息,您可以複製以下命令的輸出:“TASKLIST /? >%userprofile%/Desktop/uso.txt” 。這樣,您就可以隨時查看所有已解釋的選項,而無需在處理複雜的篩選條件時依賴記憶。

tasklist
tasklist /v
tasklist /svc
tasklist /m ntdll.dll

CSV 輸出檔案非常適合在 Excel 中開啟或使用腳本進行處理。您可以產生如下所示的詳細報告:CSV 檔案 + 詳細檔案儲存到桌面,即可使用篩選器和資料透視表進行分析。

tasklist /v /fo csv >%userprofile%/Desktop/list.csv

如果您需要更簡潔、託管且以文字格式呈現的文件,可以選擇:清單 + TXT 文件重新導向到桌面。它非常適合在記事本中快速查看,也方便與同事分享。

tasklist /svc /fo list >%userprofile%/Desktop/list.txt

篩選功能非常強大。例如,您可以只保留正在運行的應用程式並查看它們的詳細資訊:這有助於您專注於目前正在運行的任務,同時排除某些版本中已暫停或掛起的任務。

tasklist /v /fi "STATUS eq running"

另一個經典應用:定位哪些進程正在載入特定的 DLL 文件,例如ntdll.dll。這對於診斷問題或調查依賴關係非常有用。

tasklist /m ntdll.dll

也可以使用範圍來篩選記憶體使用量。例如,要查看使用記憶體超過 15000 KB 但少於 19000 KB 的進程,您可以連接兩個/FI指令,從而獲得您感興趣的確切記憶體段。

tasklist /fi "memusage gt 15000" /fi "memusage lt 19000"

另一個重複出現的模式是將清單組合在一起:使用&運算子透過兩次鍊式呼叫列出 notepad.exe 和 firefox.exe ,這樣一次遍歷即可將兩個結果都顯示在螢幕上。

tasklist /fi "IMAGENAME eq notepad.exe" & tasklist /fi "IMAGENAME eq firefox.exe"

您是否需要直接在控制台中顯示 CSV 文件,但僅顯示PID 大於 1000 的進程?沒問題:透過篩選和格式化,所有檔案都可以重定向到其他程式進行處理。

tasklist /v /fi "PID gt 1000" /fo csv

如果要匯出該 CSV 文件,只需新增重定向即可。這在建立安全區域報告或收集事件資料時非常方便。

tasklist /v /fi "PID gt 1000" /fo csv > procs.csv

按使用者和狀態篩選,同時排除系統權限,在尋找即時「使用者」進程時非常有用。此視圖可以過濾掉系統噪音,讓您專注於通常在辦公環境中導致問題的原因。

tasklist /fi "USERNAME ne NT AUTHORITY\SYSTEM" /fi "STATUS eq running"

在遠端場景中,任務清單功能非常實用。您可以使用目前憑證或自訂憑證查詢名為srvmain 的伺服器,也可以按已載入的模組和服務進行篩選。請注意,WINDOWTITLESTATUS篩選器在遠端場景下無效。

tasklist /s srvmain
tasklist /s srvmain /u maindom\hiropln /p p@ssW23
tasklist /s srvmain /svc /fi "MODULES eq ntdll*"

小技巧:如果想在執行清單指令後保持命令提示字元視窗打開,可以使用指令CMD /K。這是一種無需每次都重新啟動即可「查看並停留」控制台的簡單方法。

CMD /K TASKLIST /V

使用 taskkill 關閉任務:語法、篩選器和實際範例

當應用程式無回應、不必要地消耗資源或開啟過多子進程時,taskkill就是最佳解決方案。它允許您透過進程 ID (PID) 或映像名稱終止進程、強制終止進程,並且在必要時,只需一個修飾符即可終止整個子進程樹。

  如何一步一步輕鬆安裝 Gentoo

通用語法支援使用使用者名稱和密碼進行遠端執行、支援多個鍊式篩選器,以及按進程 ID (PID) 或映像名稱 (IMAGE_NAME)執行(如果新增篩選器,則名稱可以使用萬用字元)。注意:遠端執行始終是強制的,且視窗標題/狀態篩選器不適用。

taskkill <usuario> ]]] {  }  

透過進程 ID (PID) 終止進程是最直接的方法,可以降低意外終止其他名稱相似的進程的風險。您可以在同一命令中終止一個或多個 PID,這在清理自我複製的殭屍進程時非常有用。

taskkill /pid 1230
taskkill /pid 1230 /pid 1241 /pid 1253

透過映像名稱終止程式可以方便地「關閉」特定應用程式及其所有進程,尤其適用於像大多數現代瀏覽器那樣使用多進程的應用程式。使用/F參數強制關閉應用程序,而/T 參數則移除子程序。

taskkill /f /im notepad.exe

如果您想要終止所有進程 ID (PID) 大於或等於 1000 的進程(無論其名稱為何),可以將篩選器與`/im *`結合使用。此模式僅用於非常特定的修復目的;請謹慎使用。

taskkill /f /fi "PID ge 1000" /im *

按狀態和標題篩選對於消除瓶頸非常有用。例如,您可以強制退出所有「未回應」的進程,但排除標題不符合您條件的視窗。請記住,這些篩選器無法遠端使用。

taskkill /f /fi "STATUS eq NOT RESPONDING"

有一些值得了解的特殊過程:關閉wscript.exe可以終止任何卡住的 VBScript 腳本,而重新啟動Windows 資源管理器可以解決工作列或 shell 凍結的問題。

taskkill /f /im wscript.exe
taskkill /f /im explorer.exe & start explorer.exe

如果您希望在重新啟動 shell 之前讓系統休息一下,請新增幾秒鐘的 ` timeout` 參數。這是一個小小的舉措,可以防止在磁碟操作進行時出現錯誤。

taskkill /f /im explorer.exe & timeout /nobreak 05 & start explorer.exe

另一個常見用途:關閉控制台及其可能引發的所有級聯進程。使用/T 參數可確保沒有子指令在背景執行。

taskkill /f /im cmd.exe /t

Taskkill 也支援使用憑證進行遠端執行,這在伺服器啟動時因資源消耗過大的進程而過載時至關重要。通配符可讓您定位多個名稱相似的可執行文件,例如使用「note*」來尋找記事本和其他相關程式。

taskkill /s srvmain /u maindom\hiropln /p p@ssW23 /fi "IMAGENAME eq note*" /im *

如果需要依照安全標準操作,也可以只終止啟動系統的進程(NT AUTHORITY\SYSTEM使用者),以確保不會不必要地關閉使用者工具。

taskkill /f /fi "USERNAME eq NT AUTHORITY\SYSTEM" /im notepad.exe

如果您需要更基礎的功能,可以使用tskill,它允許您在會話層級終止進程(不如 taskkill 靈活,但在較舊或功能非常有限的環境中很有用)。管理員可以用它來終止其他會話中的進程。

tskill 1230
tskill explorer /id:1

使用批次檔在 Windows 啟動時自動關機

有些情況下,登入後立即終止進程會很有用,例如,停用那些會阻礙啟動的不必要服務。您可以使用啟動資料夾中的簡單批次檔來實現這一點,而無需使用任務規劃程式。

  如何一步一步輕鬆安裝 Gentoo

建立一個包含所需 taskkill 命令的 .bat 文件,並將其移至使用者的啟動資料夾。您可以透過在「執行」對話方塊(Win+R)中輸入shell:Startup並確認來輕鬆開啟此資料夾。

@echo off
taskkill /f /im proceso1.exe
taskkill /f /im proceso2.exe
taskkill /f /im proceso3.exe

其他列出方式:WMIC、query 和 qprocess

對於進階檢查和原始資料匯出,WMIC堪稱完美之選,是偵測惡意流程工具的理想補充。您可以選擇感興趣的列(例如標題、命令列、進程 ID 等),並將其匯出到磁碟上的文件,以便後續分析或新增至報告。

WMIC /OUTPUT:C:\procs.txt PROCESS get Caption,Commandline,Processid

此外,借助`query`及其別名`qprocess`,可以輕鬆查看哪些進程正在哪個會話中使用哪個進程 ID (PID) 運行。這在運行遠端桌面服務的伺服器上非常有用,因為每個會話都可以擁有自己的一組活動進程。

query process *
query process /id:1

這組命令會顯示包括擁有者使用者、會話名稱、會話 ID、進程名稱和進程 ID (PID) 在內的資料。它們共同提供了多會話視圖,任務清單命令也能顯示此類視圖,但該命令特別側重於終端服務。

使用 sc 管理服務:建立、查詢、啟動和刪除

若要管理系統服務,`sc`指令可以直接開啟服務控制管理員(Services.msc )。透過它,您可以建立新服務、修改服務描述、啟動或停止服務、暫停服務,以及刪除服務登錄項目。它也可以透過在命令前加上 `\\` 來遠端執行。

建立具有自動啟動功能的範例服務非常簡單,只需指定符號名稱、二進位檔案路徑和啟動類型即可。請注意等號後面的空格:它們在 `sc` 中很重要,因此請務必遵循正確的語法。

sc create NuevoServicio binpath= c:\windows\system32\NuevoServicio.exe start= auto

若要在遠端主機上執行此操作,請在主機名稱前加上服務名稱。之後,其餘命令(啟動、停止、刪除)將使用該服務名以完全相同的方式運作。

sc create \\miservidor NuevoServicio binpath= c:\windows\system32\NuevoServicio.exe start= auto

啟動、停止或變更新建立服務的管理狀態都很簡單。當服務啟動有問題的子程序時,通常需要將這些指令與tasklist/taskkill指令結合使用。

sc start NuevoServicio
sc stop NuevoServicio
sc pause NuevoServicio

對於審計而言,各種形式的`sc query` 命令都非常有用:它可以查詢活動服務、所有服務、互動式服務,或特定服務及其狀態。當您需要即時狀態和類型資訊時,此視圖可以作為 `tasklist /svc` 命令的補充。

sc query
sc query type= service
sc query state= all
sc query NuevoServicio
sc query type= service type= interact

當您不再需要某項服務時,只需簡單地刪除它即可將其從註冊表中移除。請注意,該服務必須先停止;否則,操作將失敗或一直處於掛起狀態,直到資源被釋放。

sc delete NuevoServicio

幫助、支援的篩選條件和遠端模式的細微差別

tasklist 和 taskkill 這兩個指令都會直接從控制台顯示非常全面的幫助資訊。請花點時間閱讀:您會看到支援的篩選條件,例如PID(等於、小於、大於、小於、大於、小於)、IMAGENAME(等於、小於)、USERNAMEMEMUSAGEMODULESWINDOWTITLE,以及狀態值,例如 RUNNING、NOT RESPONDING 或 UNKNOWN(EDSP)也可能是某些版本。

  在 Windows 11 中更改和配置預設音訊輸出設備

請記住以下幾條規則:通配符*僅在應用篩選器時才適用於 /IM;在遠端模式下,始終強制自動補全,並且不會評估 WINDOWTITLE 和 STATUS 篩選器。如果您要遠端運行,請確保您擁有有效的憑證,防火牆允許必要的通信,並且 RPC/WMI 服務正在運行。

要將幫助資訊儲存到文件中,以便以後查閱而不會迷失在控制台中,請記住您可以將輸出重定向到桌面上的 .txt 文件,這在記錄內部流程或與團隊共享操作手冊時特別有用。

TASKLIST /? >%userprofile%/Desktop/uso_tasklist.txt
TASKKILL /? >%userprofile%/Desktop/uso_taskkill.txt

日常管理的實際例子

常用流程:監控資源密集型進程、識別共用 DLL 以及準備 CSV 檔案以供後續檢視都是常見任務。以下是一些基於上述內容的快速操作範例,您可以根據自身環境進行組合和調整。

產生詳細清單並保持控制台視窗打開,便於即時監控而無需關閉視窗。將CMD /K與 tasklist 結合使用,可實現便利的工作流程。

CMD /K TASKLIST /V

尋找所有載入了指定模式模組的進程。 DLL名稱末尾的通配符可讓您涵蓋同一系統庫的不同版本或變體。

tasklist /m ntdll*

這裡匯總了兩個常用應用程式的運行實例數量及其記憶體使用情況,方便您快速查看。這可以幫助您判斷是否存在過多的多進程運行或瀏覽器標籤頁無序運行的情況。

tasklist /fi "IMAGENAME eq notepad.exe" & tasklist /fi "IMAGENAME eq firefox.exe"

透過憑證和映像名稱模式終止對遠端伺服器的存取。這在企業環境中非常有用,因為在企業環境中,由於層層嵌套的辦公室流程,遠端桌面經常無回應。

taskkill /s srvmain /u maindom\hiropln /p p@ssW23 /fi "IMAGENAME eq note*" /im *

如果你想嚴格按照來源進行選擇性終止,那就只終止由系統帳戶啟動的進程。這種篩選方式在調查與使用者程序相關的服務行為時非常有效。

taskkill /f /fi "USERNAME eq NT AUTHORITY\SYSTEM" /im notepad.exe

安全提示和最佳實踐

請勿在未驗證系統進程功能的情況下終止它們;這可能會導致系統不穩定或資料遺失。終止進程前,請使用`tasklist /v` 指令來辨識進程,並盡可能嘗試透過系統介面正常關機。僅在別無選擇的情況下才使用 ` /F`命令。在繼續操作之前,請查閱不應停用的 Windows 11 服務清單。

遠端辦公時,請使用權限最低的帳戶;如果您管理多台機器,請考慮編寫腳本記錄哪些進程已關閉以及關閉時間。將輸出重定向到 CSV 或 TXT 檔案以留下痕跡,並像保護生產機密一樣保護包含密碼或憑證的檔案。

最後,請記住,有時最快的方法是使用圖形介面:開啟任務管理器,手動關閉惡意進程。控制台擅長自動化、精確診斷和可重複操作;而圖形使用者介面則在需要立即點擊時發揮作用。

現在,您已經掌握瞭如何使用 tasklist 和 taskkill 指令清點、篩選和終止進程,以及如何使用 sc 指令建立、查詢和刪除本機及遠端服務。本文中的範例和注意事項將幫助您建立自己的維護腳本,在幾秒鐘內回應崩潰,並為您的團隊產生精美的 CSV 或 TXT 報告,始終遵循最小幹預和最大控制系統運行內容控制的原則。

Tasklist 和 Taskkill 用於管理 Windows 中的進程
相關文章:
如何使用 TASKLIST 和 TASKKILL 管理 Windows 中的進程和任務