PowerToys PowerRename 右键菜单不显示排查 (Shell Extension Blocked)

背景

笔者在Windows10 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 根本没加载这个 DLL。

根源分析

Windows 资源管理器有一个保护机制:如果某个 Shell Extension 在加载时导致过 Explorer 崩溃、卡死或超时(可能发生在安装瞬间的冲突),Windows 会静默将该扩展的 CLSID 加入系统级的“黑名单”。

一旦进入黑名单,无论你怎么重装软件(因为卸载程序通常不敢动系统级的 Blocked 注册表),Explorer 都会永久忽略该扩展。

解决方案

检查注册表中的 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。与其在软件配置上浪费时间,直接查注册表黑名单。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注