win11 ( win10 及以前的不知道)设置里有个选项“使用我的登录信息在更新后自动完成设置”,在账户>登录选项里,开启后可以实现开机系统自动登录上次的账户,完成所有程序的开机自启,再自动锁定。而且并不需要等程序启动完成再锁定,是异步的,所有开机后往往会看见登录屏幕闪一下,那就是自动登录又马上锁定,程序就在后台慢慢自启。
windows 的自启有很多实现方式,服务、计划任务、组策略、注册表、启动文件夹,等等,不同的程序往往可能选用不同的方式,所以在任务管理器的启动栏和设置的自启应用里面看到的不一定是全部,管家类程序能检测到的会更全一些,但也不一定是全部。
用户如果想手动设一个应用开机自启,最简单的方式是把快捷方式丢到启动文件夹里面,也就是win+r输入shell:startup打开的文件夹,但这种方式设置的程序在用户登录,也就是输入密码之后才会自启。如果想开机就自启,往往需要创建一个合理设置的计划任务,但这种方式又不适用于 GUI 程序,一般都是命令行程序或 bat 脚本;或者用 winsw 包装成服务。而且不管怎么说,一个程序就要对应操作一轮,比较麻烦。这是不登录情况下的解决办法。
说回正题,本来我电脑默认就是设置好的,导致我以为开机登录前完成自启理所当然,最近脑子一热玩了玩optimizer和SophiApp,这俩都是所谓优化 windows 的,适合装新机的时候用一下,快速改掉 win 部分默认的糟糕设置。其中 optimizer 就有一个win11->加强隐私的设置,看上去人畜无害,我就点了,结果重启以后就不能登录解锁前应用程序自启了。
什么问题呢?这个加强隐私是个复合设置项,同时会修改多个设置,其中包含了 win11 设置的隐私和安全性>诊断和反馈>诊断数据,而从组策略层级禁用这个诊断数据会不知为何导致使用我的登录信息在更新后自动完成设置的界面变为“其中一些设置由你的组织管理”并强制禁用,也就是设置变灰无法更改。更为奇怪的是,手动去组策略管理器里面根本找不到修改项,不知道 optimizer 是怎么实现的,或者 win11 设置界面只是统一显示“其中一些设置由你的组织管理”,实际上修改的内容并非如此。
题外话,勾选这个设置还会导致就近共享不能用,虽然有详情说明,因为那糟糕的翻译我一开始也没反应过来。
解决方法也很简单,把勾选的勾掉,再去设置里面确认,果然隐私诊断数据和登录自启都恢复了。
所以说,真的是能用就别乱改,不懂原理和细节就别乱玩,当时候坑的还是自己。windows 表面上的同一个功能可能会有复数个设置对应,它们之间可能是“与”的关系,也可能是“或”的关系,还可能有不同的优先级。win10 和 win11 的新版设置,老版的控制面板,注册表,组策略管理器,最喜闻乐见的当然是改一处其他地方一起变,但很多时候某个设置是某个地方独占的或者独立的,这种情况就需要仔细斟酌了。