2020 年 10 月,按照 Win10 半年滚动更新的惯例,微软推出了 Windows 10 20H2 。谁能想到,这次更新隐藏了一个和我的使用习惯有关的 bug 。
在半年滚动更新后第一时间就进行升级这种操作这些年有过多次,感觉都挺稳,这次也应该不会有什么问题。于是给自己的工作电脑、家里的娱乐电脑都升了 20H2,升级完成后还非常自信地通过磁盘清理删掉了旧系统备份……
后来的偶然之间,进入 “本地用户和组” 之后立即出现了重大问题——“系统将在一分钟之后重新启动”,此时系统的关键功能包括重启或关机都不可用,只能等一分钟后自动重启。
冷静下来一想,如果是 20H2 升级过程本身的固有问题,那么应该是个极其恶性的 bug,早就全网炸锅了吧?为什么只有我自己的几台升过级的 PC 出现了类似问题呢?(这个时候偏偏忘记了事件查看器)
从 “动了什么引起问题” 很容易想到自己有个习惯:把系统内置的 “Administrator” 账户通过组策略重命名为 “Admin” 以便局域网内共享访问。 Google 搜 “win10 20h2 Administrator rename crash” 等关键词,最终找到了这篇文章,是由于系统关键进程 lsass.exe
崩溃引起的强制重启。文章提到,通过事件查看器可以看到 lsass.exe
的崩溃记录。微软还事后诸葛亮说,在升级 20H2 前应该把系统内置账户 “Administrator” 和 “Guest” 都重命名回本来面目,已经升级的请赶快滚回回滚原来的版本。之后,Win10 易升的升级检查策略也作出了更新,检测到内置账户被重命名会拒绝升级。
后来,微软在这篇文章中阐明了问题产生的原因,大意是 Win10 20H2 升级程序如果遇到 Administrator 被重命名成别的,比如 Admin,(大概会错误地认为 Administrator 不存在)而创建新的 Administrator 账户,这个新的 Administrator 的 SID(安全标识符)和 RID 和原来的 Admin 是一模一样的,而 Windows 本地账户的 SID 原本的设计是独一无二的,以上情况会让 lsass.exe
懵逼继而崩溃,没有了安全大管家 lsass.exe
的 Windows 只能用给用户一分钟的时间然后强制重启。还记得震荡波病毒么?
问题定位了,那怎么解决这个问题?干等到 11 月的 patch Tuesday,微软发布了 KB4586781,结果竟然是屏蔽 “本地用户和组” 中的内容,感觉是临时措施保住 lsass.exe
不崩溃,而后一直都没有实际解决上述冲突问题。
我试了从系统其他任何地方,包括新的 Windows 设置界面、 powershell 、甚至 PE 的密码破解器等都动不了这俩 “Administrator 问题户”,无法解决这个问题。
微软的这篇文章后来更新了(如下图),说他们终于解决了这个问题,意思是在升级过程中不会再犯这个错误,易升的限制措施也随之取消了。然而已经出现问题的用户怎么办,咱也不知道,咱也不敢问。最后的最后怎么解决的?我重装了。
顺便,这里写错了。根据时间线不难得出 2020 年 10 月出的问题应该在 2021 年初解决,所以这里应该是 January 7, 2021,微软还真是越过越回去了。