PowerToys PowerRename 右クリックメニューに出ない問題の解決法 (Shell Extension Blocked)

背景

Windows 10 22H2 (2009, 19045.6456) 環境に PowerToys (v0.96) を新規インストールしましたが、右クリックメニューにも Shift+右クリックにも PowerRename が全く表示されませんでした。

一通りのトラブルシューティングを行いました:

  1. レジストリの確認、システム/エクスプローラーの再起動 → 解決せず
  2. 再インストール、さらには v0.88 や v0.7x といった旧アーキテクチャ版へのダウングレード → 依然として解決せず
  3. ShellExView で確認 → PowerRenameContextMenu Class のステータスは Enabled (緑) と表示される。

非常に不可解です。レジストリ上は有効で、ファイルも存在するのに、メニューだけが出てきません。

実は、問題はソフトウェア自体ではなく、Windows の「障害分離メカニズム」にありました。以下に調査プロセスを記します。

調査プロセス

ShellExView で有効と表示されている以上、通常のレジストリ項目に問題はないはずです。そこで、エクスプローラー (Explorer) が何らかの理由でロードを「拒否」しているのではないかと疑いました。

Process Explorer を使用して、PowerRename 関連のハンドルや DLL を検索しました。

Process Explorer で PowerRename を検索。結果、PowerToys.exe だけが PowerToys.PowerRenameExt.dll をロードしており、explorer.exe はロードしていないことが判明。

現象は明白です: エクスプローラーがこの DLL を全くロードしていません。

原因分析

Windows エクスプローラーには保護機能があります。もし Shell Extension(シェル拡張)のロード中にクラッシュ、ハング、またはタイムアウトが発生した場合(インストールの瞬間の競合などで起こり得ます)、Windows はその拡張機能の CLSID を静かにシステムレベルの「ブラックリスト」に追加します。

一度このリストに入ってしまうと、何度ソフトウェアを再インストールしても(アンインストーラーは通常、システムレベルの Blocked レジストリを触らないため)、エクスプローラーはその拡張機能を永続的に無視します。

解決策

レジストリ内の Shell Extension ブラックリストを確認します。

場所は以下です:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked
上記のパスに移動。右側のリストに {0440049F-D1DC-4E46-B27B-98393D79486B} という名前の項目がある。

PowerRename の CLSID はまさにこの {0440049F-D1DC-4E46-B27B-98393D79486B} です。

この値を削除し、エクスプローラーを再起動すれば直ります。

もし File Locksmith が表示されない場合は、同様に {E5235BAE-8628-4E57-9694-D1F3780D21B7} をチェックしてください。

まとめ

再インストールしても直らず、ShellExView で正常と表示される場合は、Windows Shell Extensions\Blocked に登録されてしまっている可能性が高いです。ソフトウェアの設定をいじる前に、直接レジストリのブラックリストを確認することをお勧めします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です