時々、コンピュータがひどく反応しなくなります。Process Explorer を開くと、explorer.exe が CPU を 100% 占有していることがわかります。この状態を引き起こしているスレッド 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 リグでこの問題を経験しましたが、発生を防ぐことができなかったようです。この問題は異常な発生のようです。私が見つけることができた唯一の解決策は、タスク マネージャーで Explorer.exe を終了し、再起動することでした。
タスク マネージャーを開き (Ctrl+Alt+Delete)、タスク マネージャー内のプロセス タブに移動して、「イメージ名」リストの下にある「Explorer.EXE」を見つけ、それを選択して、ウィンドウの右下にある「プロセスの終了」ボタンを押します。これでエクスプローラーが終了します。
これが完了したら、タスク マネージャーの [アプリケーション] タブに戻り、[新しいタスク] ボタンを押して、表示されるダイアログに「Explorer.EXE」と入力します。これにより、Explorer が再起動され、問題が解決するはずです。
答え2
explorer.exe は、マイ コンピューターの直下にショートカットがあると、それを好まないようです。target.lnk 項目を削除して、動作がまだ発生するかどうかを確認してください。
別の修正方法としては、「コントロール パネル」>「タスク バーとスタート メニュー」>「スタート メニュー」タブ>「カスタマイズ」の順に移動し、3/4 ほど下にスクロールして「パブリック フォルダーなしで検索」を選択する方法があります。