我的電腦有時會變得非常無響應。開啟 Process Explorer 會發現 explorer.exe 佔用了 100% 的 CPU。我四處尋找,直到我找到正在執行此操作的線程 ID,並使用 Process Monitor 監視該線程。該線程正在嘗試執行許多操作。其中一些結果為“成功”,另一些結果為“未找到”。我已附加一個包含日誌的 Excel 文件,但我還附加了一個螢幕截圖,其中包含分組/突出顯示的操作和匹配計數。
知道這可能是什麼嗎?我已經執行了 AV 掃描(Microsoft Security Essentials),它說我是乾淨的。
紀錄:https://www.dropbox.com/s/qk5y3hor4knsihh/processMonitor_Logfile.xlsx
根據評論中 SLAks 的問題,Process Explorer 將繁忙的線程顯示為 SHLWAPI.dll;這是堆疊:
ntkrnlpa.exe+0x6ea6b
ntkrnlpa.exe!MmIsDriverVerifying+0xbde
hal.dll+0x2ef2
ntdll.dll!RtlConvertSidToUnicodeString+0xa3
ntdll.dll!RtlFormatCurrentUserKeyPath+0xdb
ADVAPI32.dll!ImpersonateLoggedOnUser+0x6e7
ADVAPI32.dll!ImpersonateLoggedOnUser+0x6a7
ADVAPI32.dll!ImpersonateLoggedOnUser+0x4ba
ADVAPI32.dll!ImpersonateLoggedOnUser+0x7e5
ADVAPI32.dll!ImpersonateLoggedOnUser+0x825
ADVAPI32.dll!RegQueryValueExW+0x8c
SHLWAPI.dll!Ordinal128+0x59
SHLWAPI.dll!SHRegGetValueW+0x16a
SHLWAPI.dll!SHRegGetValueW+0x9a
SHLWAPI.dll!SHQueryValueExW+0x20
SHELL32.dll!SHChangeNotifyDeregister+0xb5d
SHELL32.dll!SHChangeNotifyDeregister+0xe8e
SHELL32.dll!SHChangeNotifyDeregister+0xd26
SHELL32.dll!SHGetPathFromIDListW+0x16a
SHELL32.dll!ILRemoveLastID+0x1c3
SHELL32.dll!SHGetPathFromIDListW+0x8e
SHELL32.dll!SHGetPathFromIDListW+0x12
SHELL32.dll!OpenRegStream+0xc5d
SHELL32.dll!OpenRegStream+0xbbb
SHELL32.dll!SHGetRealIDL+0x2470
SHELL32.dll!Ordinal7+0x1a87f
SHELL32.dll!Ordinal7+0x1a8f8
SHELL32.dll!Ordinal7+0x1ba56
SHELL32.dll!ILFindLastID+0xbea
SHELL32.dll!ILSaveToStream+0x69a
SHELL32.dll!ILFindLastID+0xc96
SHELL32.dll!SHGetSpecialFolderLocation+0xddf
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd3d
SHELL32.dll!SHGetSpecialFolderLocation+0xa90
SHELL32.dll!Ordinal7+0x1b6e7
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd3d
SHELL32.dll!SHGetSpecialFolderLocation+0xa90
SHELL32.dll!Ordinal7+0x1b6e7
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd3d
SHELL32.dll!SHGetSpecialFolderLocation+0xa90
SHELL32.dll!Ordinal7+0x1b6e7
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd3d
SHELL32.dll!SHGetSpecialFolderLocation+0xa90
SHELL32.dll!Ordinal7+0x1b6e7
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd3d
SHELL32.dll!SHGetSpecialFolderLocation+0xa90
SHELL32.dll!Ordinal7+0x1b6e7
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd70
SHELL32.dll!SHGetSpecialFolderLocation+0xe1b
SHELL32.dll!SHGetSpecialFolderLocation+0xd3d
SHELL32.dll!SHGetSpecialFolderLocation+0xa90
SHELL32.dll!Ordinal7+0x1b6e7
答案1
我曾經在我的 XP Rig 上遇到過這個問題,而且我似乎無法阻止它的發生 - 這個問題似乎是一個異常現象。我能找到的唯一解決方案是透過工作管理員殺死 Explorer.exe,然後重新啟動它。
只需打開任務管理器(Ctrl+Alt+Delete),導航到任務管理器中的“進程”選項卡,在“圖像名稱”列表下找到“Explorer.EXE”,找到它後,選擇它,然後按視窗右下角的「結束進程」按鈕。這將殺死探險家。
完成此操作後,導覽回任務管理器中的「應用程式」標籤,按下「新任務」按鈕,然後在出現的對話方塊中鍵入「Explorer.EXE」。這將重新啟動資源管理器並應該解決問題。
答案2
當捷徑直接位於「我的電腦」下時,explorer.exe 顯然不喜歡它。嘗試刪除 target.lnk 項目並查看該行為是否仍然發生。
另一個可能的修復方法是前往控制面板 > 工作列和開始功能表 > 開始功能表標籤 > 自訂,然後向下捲動約 3/4 並選擇「不搜尋公用資料夾」。