[登録されているタグ]

[記事公開日]2026/01/23

PowerShellで右クリックメニューの原因を疑う観点(確認手順)

📝 はじめに

右クリック(コンテキストメニュー)が
「開くのが遅い」「固まる」「項目が多すぎる」「何かを選ぶとエラーになる」
といった症状は、意外とよくあります。

原因はさまざまですが、実務でまず疑いやすいのは
シェル拡張(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の不具合を切り分けたい
Generic filters
すべてを開く | すべてを閉じる

ページ上部へ戻る