4 月 8 日消息,微软今年 2 月面向 Windows 10 用户推送 KB5034763 更新、面向 Windows 11 用户推送 KB5034765 更新,其中一项调整是阻止用户使用软件或者修改注册表方式,配置系统的默认浏览器。
IT之家 3 月 26 日已经报道过这个问题,现在关于这个问题的更多细节被披露。IT 顾问 Christoph Kolbicz 率先发现微软的这项调整,安装 2 月更新之后导致其 SetUserFTA 和 SetDefaultBrowser 程序无法正常使用。
SetUserFTA 是一个命令行程序,可让 Windows 管理员通过登录脚本和其他方法更改文件关联;SetDefaultBrowser 的工作原理类似,但只能用于更改 Windows 中的默认浏览器。
背景介绍
微软自 Windows 8 系统开始就引入了新的安全机制,为了防止恶意软件和恶意脚本篡改,将文件扩展名、URL 协议与默认程序关联起来。
微软的这一新机制,将文件扩展名或 URL 协议关联,存储在 UserChoice 注册表键值下。
例如,分配给 HTTPS URL 协议的默认网络浏览器的路径如下:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice]
"ProgId"="ChromeHTML"
"Hash"="N3eikAB1HhI="
如果未使用正确的哈希值,Windows 将忽略注册表值,并使用该 URL 协议的默认程序,即 Microsoft Edge。
Kolbicz 逆向设计了这种 Hashing 算法,创建了 SetUserFTA 和 SetDefaultBrowser 程序来更改默认程序。
2 月新调整
不过 Windows 10 和 Windows 11 系统安装 2 月更新之后,Kolbicz 注意到这些注册表键值现在已被锁定,在 Windows 设置之外修改时会出现错误。
例如,使用 Windows 注册表编辑器修改这些设置时会出现错误,提示“无法编辑哈希值:错误写入值的新内容”。
经过进一步研究,Kolbicz 发现微软在二月份的更新中引入了一个新的 Windows 过滤驱动程序(c:\windows\system32\drivers\UCPD.sys)。
该驱动程序被称为 "用户选择保护驱动程序",加载后可防止直接编辑与 HTTP 和 HTTPS URL 关联以及 .PDF 文件关联相关的注册表键值。
相关的注册表键值是:
HKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice
HKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\pdf\UserChoice
临时修改方案
Kolbicz 在一篇博文中解释说,虽然不能卸载驱动程序,但可以在注册表中禁用它。
该驱动程序固然无法卸载,但可以禁用!
在以管理员权限打开的 PowerShell 窗口下,输入以下命令,然后重启生效:
New-ItemProperty -Path “HKLM\SYSTEM\CurrentControlSet\Services\UCPD” -Name “Start” -Value 4 -PropertyType DWORD -Force
这就恢复了 SetUserFTA 的功能,但遗憾的是需要管理权限和重启。
Gunnar Haslinger 在一篇博文中解释说,在 \Microsoft\Windows\AppxDeploymentClient 下新创建的 "UCPD velocity" 计划任务会在服务禁用时自动重新启用。
因此,禁用驱动程序的唯一方法是通过注册表关闭它,并删除 / 禁用计划任务。
相关阅读:
《部分 Win10 用户反馈安装微软 2 月更新后,第三方工具无法调整 URL 关联》
参考