もくじ
📝 はじめに
右クリック(コンテキストメニュー)が
「開くのが遅い」「固まる」「項目が多すぎる」「何かを選ぶとエラーになる」
といった症状は、意外とよくあります。
原因はさまざまですが、実務でまず疑いやすいのは
シェル拡張(Shell Extension)や
右クリックメニューに追加するアプリの影響です。
これらはレジストリに登録されていることが多く、
PowerShellで「どこに何が入っているか」を確認できます。
- 右クリック 遅い 原因 シェル拡張
- コンテキストメニュー フリーズ Windows
- PowerShell 右クリックメニュー レジストリ 確認
- explorer 右クリック 不具合 調査
✅ このテーマで押さえる要点(結論)
- 右クリック不具合は「Explorerに組み込まれた拡張(Shell Extension)」をまず疑う
- 確認は「現象の切り分け → 登録場所(レジストリ)確認 → 影響範囲(HKCU/HKLM)確認」の順が安全
- PowerShellで「登録されている場所とCLSID」を一覧化すると、原因候補が見つけやすい
- 見つけても即削除せず、バックアップ・ログを取って段階的に切り分ける
- Windows 11の新旧メニュー差で、疑う場所が変わる場合がある
✅ まず切り分け:どの右クリックで起きる?
右クリックの不具合は、クリックする場所によって原因が違うことがあります。
まずは次の観点で現象を整理します。
- ファイル(例:.txt / .zip / .jpg)を右クリックしたときだけ遅い
- フォルダーを右クリックしたときだけ遅い
- 背景(何もないところ)を右クリックしたときだけ遅い
- ドライブ(C: など)を右クリックしたときだけ遅い
「特定の拡張子だけ遅い」なら、その拡張子に紐づく拡張(右クリック項目)を疑いやすくなります。
「どこでも遅い」なら、Explorer全体に効く拡張(AllFileSystemObjectsなど)を疑います。
🧩 右クリックメニューの原因になりやすい登録場所(全体像)
右クリックメニューに関係する拡張は、代表的に次の場所に登録されることがあります。
ここをPowerShellで確認していくのが基本です。
🧷 全体に効く(まず見る)
HKCR:\*\shellex\ContextMenuHandlers
HKCR:\AllFileSystemObjects\shellex\ContextMenuHandlers
- 多くのファイル右クリックに影響
- 追加アプリの影響が出やすい
📁 フォルダー系
HKCR:\Directory\shellex\ContextMenuHandlers
HKCR:\Directory\Background\shellex\ContextMenuHandlers
HKCR:\Folder\shellex\ContextMenuHandlers
- フォルダー右クリックや背景右クリックに影響
- 「背景だけ重い」時は特に有力
💽 ドライブ系
HKCR:\Drive\shellex\ContextMenuHandlers
- C: などの右クリックに影響
- バックアップ/暗号化/仮想ドライブ系が絡むことも
🧩 拡張子ごと(特定ファイルだけ遅い場合)
HKCR:\.xxx
HKCR:\SystemFileAssociations\.xxx\shellex\ContextMenuHandlers
- 特定の拡張子の右クリックに影響
- 画像/圧縮/Office/開発ツールなどが絡みやすい
HKCR:(HKEY_CLASSES_ROOT)は
HKLM/HKCUの合成ビューです。
まずはHKCRで「何が効いているか」を見て、
必要に応じてHKLM/HKCU側に降りて確認するのが安全です。
🧩 基本構文(確認でよく使う形)
Get-ChildItem "レジストリパス"
Get-ItemProperty "レジストリパス"
Test-Path "レジストリパス"
▶ 基本的な確認手順(まずこれだけ)
🔹 1) よく効く ContextMenuHandlers を一覧化する
$targets = @(
"HKCR:\*\shellex\ContextMenuHandlers",
"HKCR:\AllFileSystemObjects\shellex\ContextMenuHandlers",
"HKCR:\Directory\shellex\ContextMenuHandlers",
"HKCR:\Directory\Background\shellex\ContextMenuHandlers",
"HKCR:\Folder\shellex\ContextMenuHandlers",
"HKCR:\Drive\shellex\ContextMenuHandlers"
)
foreach ($t in $targets) {
Write-Output "=== $t ==="
if (Test-Path $t) {
Get-ChildItem $t -ErrorAction SilentlyContinue | Select-Object Name
} else {
Write-Output "(not found)"
}
}
ここで出てくるサブキー名が、右クリックに関係する「候補リスト」になります。
まずは「聞いたことがない名前」「追加アプリっぽい名前」がないかを見ます。
🔹 2) 値(CLSID)を取得して、登録内容を把握する
$path = "HKCR:\AllFileSystemObjects\shellex\ContextMenuHandlers"
Get-ChildItem $path | ForEach-Object {
$default = (Get-ItemProperty $_.PSPath -ErrorAction SilentlyContinue)."(default)"
[pscustomobject]@{
HandlerKey = $_.PSChildName
CLSID = $default
}
} | Format-Table -AutoSize
CLSID(GUID)が取れると、
「その拡張がどのDLL/EXEに紐づくか」を追えるようになります。
ただし、ここではまず“候補を洗い出す”ことが目的です。
🔹 3) CLSIDから実体(InProcServer32など)を確認する
$clsid = "{00000000-0000-0000-0000-000000000000}" # 例:取得したCLSIDに置き換え
Get-ItemProperty "HKCR:\CLSID\$clsid\InprocServer32" -ErrorAction SilentlyContinue
ここで (default) に DLL パスが表示されることがあります。
それが「Explorerに読み込まれる拡張」の実体に近い情報です。
すべての拡張が InprocServer32 を持つとは限りません。
表示されない場合もあり、その場合は別の登録形式の可能性もあります。
🛠 よく使われる指定例(実務向けの確認)
🔹 「背景だけ重い」なら Directory\\Background を重点確認
Get-ChildItem "HKCR:\Directory\Background\shellex\ContextMenuHandlers" |
Select-Object Name
背景右クリック(フォルダーの余白やデスクトップの右クリック)が重い場合、
ここに追加された拡張が疑わしいことがあります。
🔹 「フォルダーだけ重い」なら Directory / Folder を重点確認
Get-ChildItem "HKCR:\Directory\shellex\ContextMenuHandlers" | Select-Object Name
Get-ChildItem "HKCR:\Folder\shellex\ContextMenuHandlers" | Select-Object Name
🔹 「特定拡張子だけ重い」なら SystemFileAssociations を確認
$ext = ".zip" # 例
Get-ChildItem "HKCR:\SystemFileAssociations\$ext\shellex\ContextMenuHandlers" `
-ErrorAction SilentlyContinue | Select-Object Name
例えば圧縮ファイル、画像、PDFなどは右クリック拡張が多く、
ここが重さの原因になる場合があります。
💼 実務でよく使う使用例(応用)
🔹 一覧をログとして保存して「正常端末」と比較する
$out = "C:\temp\contextmenu_handlers.txt"
$targets = @(
"HKCR:\*\shellex\ContextMenuHandlers",
"HKCR:\AllFileSystemObjects\shellex\ContextMenuHandlers",
"HKCR:\Directory\shellex\ContextMenuHandlers",
"HKCR:\Directory\Background\shellex\ContextMenuHandlers",
"HKCR:\Folder\shellex\ContextMenuHandlers",
"HKCR:\Drive\shellex\ContextMenuHandlers"
)
foreach ($t in $targets) {
"=== $t ===" | Out-File $out -Append
if (Test-Path $t) {
Get-ChildItem $t -ErrorAction SilentlyContinue |
Select-Object Name |
Out-File $out -Append
} else {
"(not found)" | Out-File $out -Append
}
}
同じ型番のPCや、正常に動くPCと比較すると、
追加された拡張が見つけやすくなります。
🔹 追加アプリを疑うときの見方
- インストール直後に重くなったなら、直近追加アプリを疑う
- シェル拡張のDLLが特定アプリ配下にあるなら、そのアプリが候補
- 一度に全部いじらず「1つずつ」切り分ける
🧩 よくある勘違い・つまずきポイント
- 右クリックの遅さ=必ずレジストリ、とは限らない(Explorer自体の不具合もある)
- HKCRだけ見て終わりにしてしまう(実体はHKLM/HKCUにあることがある)
- CLSIDが出たからといって即「犯人」と断定してしまう
- Windows 11の新しい右クリックメニューと旧メニューで挙動が違う場合がある
- 削除してしまい復旧できなくなる(バックアップなしの変更)
⚠ エラー・うまく動かないときの確認ポイント
- 対象キーが存在しない(未設定)の可能性がある
- 管理者権限が必要なパスを見ていないか(HKLM起点など)
- CLSIDからDLLが出ない場合は別タイプの拡張の可能性がある
- 右クリック以外の原因(Explorerクラッシュ、プロファイル破損等)も並行して疑う
🧠 注意点
右クリックメニューの不具合は、
「原因を疑う」段階と「変更する」段階を分けて考えるのが安全です。
まずはPowerShellで一覧化し、ログとして残してから次の手順を検討すると安心です。
変更を行う場合は、レジストリのバックアップ(.reg出力など)を取った上で、
1つずつ段階的に切り分ける運用が現実的です。
📌 まとめ
- 右クリック不具合は Shell Extension(ContextMenuHandlers)をまず疑う
- まずは「どの右クリックで起きるか」を切り分ける
- HKCRの ContextMenuHandlers をPowerShellで一覧化すると候補が出る
- CLSIDから実体(DLL)を追える場合があり、原因候補の特定に役立つ
- 変更はバックアップとログを取ってから、段階的に行うのが安全
🔎 PowerShellコマンドを探す
やりたいことからPowerShellコマンドを探せます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- 右クリックメニューが遅い原因を調べたい
- Explorerの不具合を切り分けたい
