今天某网友的win11 22h2 x64电脑上遇到了这样的问题:
因为windows安全中心自动删除软件,试图关闭它的防护时关不掉。

小白而言,如果关不掉defender,那装个第三方杀毒软件顶替就行了。

说是这么说,问题还是要解决。远程检查defender为什么关不掉时,发现defender里的所有按钮都点不动,点了关闭立即恢复启动。网友电脑开了UAC的,正常而言点关闭是有UAC弹窗,而现在没有。
defender组策略注册表检查过了,没有问题。
powershell重置过SecHealth,没有解决。
怀疑是权限问题,上procmon分析access denied的事件,没有任何发现。然后检查服务是否有禁用时,发现了新问题:
所有Windows服务都报错<读取描述失败。错误代码: 2 >

然而用procmon分析.dll和.mui文件的NOT FOUND事件,没有任何发现。怀疑语言设置问题,运行intl.cpl,管理,更改系统区域设置,居然点不动。

出问题之前是能正常打开的。所以现在这个问题影响的范围有点广,包括此电脑图标名字也变成英文了。

问题影响范围有点大,先排除下用户配置问题,于是新建了管理员账户登录。

新账户登录失败!
出现了问题,但你可以重试。OOBESETTINGS。

跟我另一个视频系统更新升级或新建账户登录时出现报错OOBESETTINGS的解决思路的问题很像,但还有些许差别,能看到“为你的设备选择隐私设置”,点击接受后才报错,而视频在这之前就报错了。

怀疑是语言包问题,但是网友电脑上没安装appx的语言包,我主动安装上简体语言包了问题也还在。
查看“c:\users\新用户文件夹”权限,提示:
无法打开访问控制编辑器。激活要求在CLSID密钥下面有显示名称。

或者是“无法打开访问控制编辑器。配置注册表数据库损坏。”

甚至在用户文件夹里新建文件夹也会报错“配置注册表数据库损坏”。

用procmon分析启动日志的access denied事件了,但没发现任何相关日志。
也分析过了读取mui文件的事件,没发现异常。
分析mmc.exe打开services.msc的事件,没发现拒绝访问或找不到文件事件。
检查过常见文件夹的权限正常。
检查过事件查看器日志,没有相关事件。
检查了注册表HKCR\Local Settings\MuiCache权限,正常。
删除了MuiCache,再次访问intl.cpl的系统区域设置,还是打不开;服务也还是异常。
按理MuiCache会重新生成,但是已经重启过电脑还是没生成。
到这里已经知道是Mui方面的问题,但不知道问题出在哪里。另外还跟UAC无法自动提权有关。

在关闭UAC后,defender正常了,intl.cpl里的设置也能正常打开了,唯独服务里描述还是报错。由于检查浪费了不少时间,继续占用网友电脑我多少有点不好意思,所以决定导出software和system注册表,然后用23h2镜像升级安装修复。

升级完成后问题也真的解决了。然后再次用reg save命令导出system和software注册表,在虚拟机里对比两次注册表变化,找到了关键的项!
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MUI\StringCacheSettings

虚拟机里模拟删除StringCacheGeneration或StringCacheSettings,重启后成功复现上面提到的所有问题:
defender关不掉,关了自动打开;
没有UAC弹窗;
管理员图标按钮打不开;
新账户登录报错OOBESETTINGS
MuiCache注册表删除后不会创建
而且刚好这个注册表路径有“MUI”字符串。StringCacheGeneration的十六进制值又刚好是HKCR\Local Settings\MuiCache子项的名字。重新创建StringCacheGeneration,注销重新登录问题就解决了。
然后问题来了,这个注册表是谁删除的?

网友说自己没动过注册表。然后我网上找了下,还真找到一样问题的。

回复里有人提到了导致问题的软件:ABBYY FineReader PDF

最后也是覆盖安装系统解决的。问了网友也是装过这软件。

至此问题来龙去脉彻底搞清楚了。