Windows 程式高度依賴 DLL(動態連結庫),單一 DLL 損壞、遺失或版本衝突,可能同時擊垮多個看似無關的程式。本文實戰示範:當「搜尋小幫手」、「說明及支援」、「使用者帳戶」三個介面同時變成空白,如何透過 ListDLLs 工具比對進程載入的 DLL 差異,精準鎖定罪魁禍首。
explorer.exe(屬於總管一部分)helpctr.exemshta.exe(觀察開啟/關閉時進程變化判斷)小技巧:可用命令列 tasklist /fo table > before.txt、tasklist /fo table > after.txt、fc before.txt after.txt > diff.txt 自動比對進程差異。
listdlls.exe 放入 C:\Windowscmd)REM 1. 基準線:未開啟搜尋小幫手時 explorer.exe 載入的 DLL
listdlls -r explorer.exe > C:\explorer1.txt
REM 2. 開啟搜尋小幫手
REM 3. 再次擷取
listdlls -r explorer.exe > C:\explorer2.txt
REM 4. 比對差異 → 即為搜尋小幫手額外載入的 DLL
fc C:\explorer1.txt C:\explorer2.txt > C:\explorer_diff.txt
listdlls -r helpctr.exe > C:\helpctr.txt
listdlls -r mshta.exe > C:\mshta.txt
每次擷取前建議重開機,避免殘留 DLL 干擾比對。
listdlls [-r] [進程名稱 | PID] 顯示指定進程載入的 DLL
listdlls [-r] [-d DLL名稱] 顯示載入指定 DLL 的所有進程
-r 遞迴顯示完整路徑
regsvr32 路徑\檔案.dll(若為 COM 元件)「多程式同時異常」通常指向共用元件故障。ListDLLs 以進程為切入點,配合差異比對,能在幾百個 DLL 中快速定位問題核心,是系統管理員與進階使用者必備的偵錯利器。