今天在微软新闻组里看到一个帖子,网友提这么两个问题(稍作修改):
问题1 用Users组帐户登录系统,打开“电源管理”控制面板窗口,发现无法更改“电源使用方案”,比如将默认的“家用/办公桌”方案(20分钟关闭监视器)改为“演示”方案(从不关闭监视器),系统会提示“拒绝访问”,如下图所示。
问题2 如果尝试借助运行方式,用管理员帐户Admin打开权限,在"运行"中输入"powercfg.cpl",调出
“电源管理”控制面板,虽然可以修改,但是改完后用Users组帐户自己再去看一下,还是没变。
提示 该帖子的URL链接如下:
http://www.microsoft.com/China/community/dgbrowser/zh-cn/default.mspx?dg=microsoft.public.cn.windowsxp&mid=f2d606b1-71be-4a58-a626-92a053fce609
问题1的思路
大家知道绝大部分控制面板的组件选项实际上和注册表键值一一对应,电源使用方案对应HKEY_CURRENT_USERControl PanelPowerCfg注册表项的CurrentPowerPolicy键值,登录帐户对PowerCfg注册表项有完全控制权限。CurrentPowerPolicy键值的数值数据就是当前采用的电源管理方案,用数字表示,可以直接修改这个键值。
那么如何知道某个电源管理方案所对应的数字?很简单,可以进入
HKEY_CURRENT_USERControl PanelPowerCfgPowerPolicies注册表项,其下有0、1、2等子项,代表不同的电源管理方案,可以得知2代表“演示”电源使用方案。
问题2的思路
至于“运行方式”的问题,这个不能怪Windows,从前面的论述中可以看到,电源使用方案和当前用户配置单元文件(HKEY_CURRENT_USER)有关。“运行方式”尽管可以用管理员帐户Admin身份打开电源管理控制面板,但是其修改的是Admin的配置单元文件(User Profile Hive),所以对当前用户无效。
我们可以验证一下,当用管理员Admin身份打开电源管理控制面板,就会发现HKEY_USERS下多出一个分支(其注册表项的名称就是Admin的SID),这是因为系统加载了管理员的配置单元,这时候对电源管理的修改实际上是保存在这个分支下(由于权限问题,普通用户帐户无法进行查看)。修改完毕,系统会自动卸载Admin帐户的注册表配置单元。