关于用codex修复 thinkbook16+ 联想笔记本屏幕亮度锁定 44%问题小记
关于用codex修复 thinkbook16+ 联想笔记本屏幕亮度锁定 44%问题小记
我的的联想笔记本最近重装系统之后有一个非常恼人的问题:屏幕亮度会莫名其妙地突然降低。
正好听有人提到agent可以拿来修复电脑问题,于是测试了一下,居然真的修复了!顺便让他写了一份文章留档,方便其他出了此问题的人解决。
需要注意的是,codex的解决方式可能手动不太容易复刻,内容可以看看了解问题成因即可。建议直接把问题告诉它,然后放开权限让他自己修复即可。
问题现象
我的联想笔记本最近重装系统之后有一个非常恼人的问题:屏幕亮度会莫名其妙地突然降低。具体表现为:
- 只要切换到 节能模式 并且 不连接电源,亮度就被稳定锁定在 44%
- 每次手动调高亮度后,过几秒到几分钟就会自动跳回 44%
- 在任务管理器里找不到任何进程在调节亮度
- 既不是环境光传感器自适应亮度的问题(该功能已关闭)
- 也不是 Intel 显卡驱动的亮度策略
感觉像是有什么东西在后台"按住"亮度不让改。在初步排查中,我注意到注册表中有一个可疑的条目"覆盖方案 961cc777",而且被 SYSTEM 权限保护着。
排查过程
第一步:检查电源方案
用 powercfg 查看当前的电源方案:
powercfg /list
powercfg /getactivescheme
当前用的是"平衡"方案(GUID: 381b4222-...),亮度设置很正常——交流/直流都是 94%(0x5e)。不是这里的问题。
第二步:发现覆盖方案
继续探查电源管理的注册表区域:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Power" /s /f "961cc777"
结果发现:
ActiveOverlayAcPowerScheme REG_SZ 961cc777-2547-4f9d-8174-7d86181b8a7a
ActiveOverlayDcPowerScheme REG_SZ 961cc777-2547-4f9d-8174-7d86181b8a7a
"Active Overlay Power Scheme"——活动覆盖电源方案。这个概念我之前没太留意过:Windows 允许在基础电源方案之上叠加一个覆盖方案,覆盖方案的设置会覆盖基础方案的对应项。
这个覆盖方案的 FriendlyName 是:
Better Battery-life Overlay
是 powrprof.dll 里定义的 Windows 内置方案。它的亮度设为:
| 项目 | 值 |
|---|---|
| ACSettingIndex | 0x2c = 44 |
| DCSettingIndex | 0x2c = 44 |
44% 的来源找到了。
第三步:验证触发机制
这个覆盖方案在节能模式激活时生效。每次电源状态变化(切节能、拔电源、合盖、唤醒等),Windows 电源管理器就从覆盖方案的注册表项读取值,重新写入硬件。所以:
- 用户手动调亮度 → 覆盖方案没改 → 亮度变了
- 触发事件(节能模式、电源变化等)→ 覆盖方案重新应用 → 读到 44 → 写回硬件
- 亮度回到 44% → 用户发现"又被锁了"
第四步:权限检查
尝试直接修改注册表:
reg add "HKLM\...\961cc777-...\aded5e82-..." /v ACSettingIndex /t REG_DWORD /d 100 /f
# 输出:ERROR: Access is denied.
# 查看 ACL
(Get-Acl -Path "HKLM:\...\PowerSchemes").Access
# 输出:
# BUILTIN\Administrators ReadKey
# NT AUTHORITY\SYSTEM FullControl
# BUILTIN\Users ReadKey
Administrators 只有 ReadKey,只有 SYSTEM 有 FullControl。这就是"SYSTEM 权限保护"——即使在管理员终端里也改不动。
根本原因总结
Windows 节能模式
↓ 激活
Better Battery-life Overlay (961cc777)
↓ 覆盖
亮度锁定 44%
↓ 保护
注册表 ACL:Administrators ReadKey、SYSTEM FullControl
↓ 触发
联想 ACPI 电源控制器 + Lenovo VantageService → 频繁重新应用覆盖
三个因素叠加:
- Windows 内置行为:Better Battery-life Overlay 是 Windows 11 自带的覆盖方案,44% 是它预设的节能亮度
- SYSTEM 权限保护:该注册表键的 ACL 禁止管理员写入,只有 SYSTEM 能改
- 联想深度集成:Lenovo ACPI-Compliant Virtual Power Controller 和 Lenovo VantageService 让覆盖方案在各种电源事件下都能稳定重新应用,导致手动调节后很快被覆盖回去
解决方案
方案一:修改覆盖方案的亮度值(推荐)
通过计划任务以 SYSTEM 身份提权,修改注册表中的亮度值从 44 改为 100。
# 核心操作:创建 SYSTEM 级计划任务
schtasks /create /tn "FixBrightness" /sc once /st <时间> `
/tr "powershell.exe -NoProfile -File '<脚本>'" `
/ru "NT AUTHORITY\SYSTEM" /rl highest /f
计划任务内部执行的脚本负责:
# 1. 取注册表键的所有权(以 SYSTEM 身份)
$acl = Get-Acl -Path $keyPath
$owner = [System.Security.Principal.NTAccount]"NT AUTHORITY\SYSTEM"
$acl.SetOwner($owner)
Set-Acl -Path $keyPath -AclObject $acl
# 2. 授予 Administrators FullControl
$admins = [System.Security.Principal.NTAccount]"BUILTIN\Administrators"
$rule = New-Object System.Security.AccessControl.RegistryAccessRule(
$admins,"FullControl","ContainerInherit,ObjectInherit","None","Allow")
$acl.AddAccessRule($rule)
Set-Acl -Path $keyPath -AclObject $acl
# 3. 修改亮度值
Set-ItemProperty -Path $keyPath -Name "ACSettingIndex" -Value 100 -Type DWord
Set-ItemProperty -Path $keyPath -Name "DCSettingIndex" -Value 100 -Type DWord
方案二:彻底禁用覆盖方案
直接删除 ActiveOverlayAcPowerScheme 和 ActiveOverlayDcPowerScheme 两个注册表值,让覆盖方案完全失效。
方案三:使用修复脚本
为了方便,我把整个过程封装成了一个可复用的 PowerShell 脚本 Fix_Brightness.ps1,放在桌面。它以管理员身份运行后会自动处理提权、修改注册表、清理临时任务等所有步骤,并提供两个选项:
- 选项 1:仅修复亮度锁定(改为 100%,保留节能模式的其他省电效果)
- 选项 2:彻底禁用覆盖方案(节能模式的覆盖层完全失效)
深入理解:覆盖方案机制
Windows 的电源管理有三层结构:
基础电源方案(平衡/高性能/节能)
↕ 叠加
覆盖方案(Better Battery-life Overlay 等)
↓ 生效
硬件层(ACPI、显卡驱动)
覆盖方案是 Windows 8 引入的机制,最初的场景是"节能模式"——在不改变用户选的基础方案的前提下,临时叠加一套更激进的节能设置。Windows 11 把这个机制扩展了,961cc777 就是预置的 Better Battery-life Overlay。
覆盖方案的注册表位置:
- 活动方案定义:
HKLM\...\PowerSchemes\ActiveOverlayAcPowerScheme - 方案内容:
HKLM\...\PowerSchemes\961cc777-... - 默认模板:
HKLM\...\Default\PowerSchemes\961cc777-...
覆盖方案的 ACL 设计是有意为之——微软不希望普通用户或非特权软件篡改节能设置。问题是这个"保护"太严了,连管理员都改不了正当想要修改的内容。
为什么联想上尤其明显
联想的电源管理集成在多个层面:
- Lenovo ACPI-Compliant Virtual Power Controller:在硬件 ACPI 层面参与电源状态切换
- Lenovo Process Management:出现在
powercfg的电池子组中,会影响方案切换行为 - Lenovo VantageService:其中的
SmartPerformanceAddin和BatteryWidgetAddin会维持覆盖方案的激活状态
这些组件让覆盖方案在各种电源事件下(AC/DC 切换、节能模式开关、合盖、唤醒、电量变化)都能稳定地重新应用,不像在其他笔记本上可能只触发一次就不管了。这就是"调了亮度还会自己回去"的原因——不是锁死了,而是反复被同一个值覆盖。

浙公网安备 33010602011771号