Loading

关于用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 电源管理器就从覆盖方案的注册表项读取值,重新写入硬件。所以:

  1. 用户手动调亮度 → 覆盖方案没改 → 亮度变了
  2. 触发事件(节能模式、电源变化等)→ 覆盖方案重新应用 → 读到 44 → 写回硬件
  3. 亮度回到 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 → 频繁重新应用覆盖

三个因素叠加:

  1. Windows 内置行为:Better Battery-life Overlay 是 Windows 11 自带的覆盖方案,44% 是它预设的节能亮度
  2. SYSTEM 权限保护:该注册表键的 ACL 禁止管理员写入,只有 SYSTEM 能改
  3. 联想深度集成: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

方案二:彻底禁用覆盖方案

直接删除 ActiveOverlayAcPowerSchemeActiveOverlayDcPowerScheme 两个注册表值,让覆盖方案完全失效。

方案三:使用修复脚本

为了方便,我把整个过程封装成了一个可复用的 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:其中的 SmartPerformanceAddinBatteryWidgetAddin 会维持覆盖方案的激活状态

这些组件让覆盖方案在各种电源事件下(AC/DC 切换、节能模式开关、合盖、唤醒、电量变化)都能稳定地重新应用,不像在其他笔记本上可能只触发一次就不管了。这就是"调了亮度还会自己回去"的原因——不是锁死了,而是反复被同一个值覆盖。

posted @ 2026-06-13 17:50  幽暗天琴沙雕  阅读(12)  评论(0)    收藏  举报