windows 电源管理之禁用睡眠脚本
来源:互联网 发布:js 上传照片插件 编辑:程序博客网 时间:2024/04/30 09:30
最近一个项目要写一个脚本对windows中睡眠功能禁用掉,对这个内容网上资料不多,所以做个分享。
休眠还是睡眠
首先要明确两个概念,休眠(hibernate)、睡眠(stand by)和混合睡眠三种概念。
休眠
休眠是指操作系统将内容中的数据存储到硬盘的swap分区下,存储完成之后,系统断电。下次按电源键时,系统重新从BIOS开始引导,然后在系统完全启动时,windows读取swap分区中的数据,并将其恢复到内存中,此时和休眠前状态一模一样。睡眠
睡眠是指操作系统为了省电,而将硬盘断电,而内存数据不断电,内存不断电,所以内存数据不会丢失,在睡眠状态下,系统可以迅速恢复(因为数据都在内存)。因为硬盘耗电量远大于内存,因此这种方式可以达到耗电极小的程度。混合睡眠
混合睡眠是综合了休眠和睡眠的特点,即windows将内存的数据copy一份到硬盘swap分区,硬盘断电,内存不断电。这样的好处是既满足了系统快速启动的特点(睡眠),又满足了系统断点之后数据不会丢失的特点(休眠)。当这种状态下,系统断电后,内存数据丢失,但是由于硬盘中有相同的copy,因此启动之后还是可以恢复状态。
电源管理
电源管理一般是采用powercfg命令,具体命令的参数参考:[powercfg参考](https://technet.microsoft.com/en-us/library/cc748940%28v=ws.10%29.aspx)首先看一下powercfg -q命令,该命令是查询当前电源项参数,下面是我的参数内容(powercfg -q > powercfg.txt)
电源方案 GUID: 381b4222-f694-41f0-9685-ff5bb260df2e (平衡) GUID 别名: SCHEME_BALANCED 子组 GUID: fea3413e-7e05-4911-9a71-700331f1c294 (不属于任何子组的设置) GUID 别名: SUB_NONE 电源设置 GUID: 0e796bdb-100d-47d6-a2d5-f7d2daa51f51 (唤醒时需要密码) GUID 别名: CONSOLELOCK 可能的设置索引: 000 可能的设置友好名称: 否 可能的设置索引: 001 可能的设置友好名称: 是 当前交流电源设置索引: 0x00000001 当前直流电源设置索引: 0x00000001 子组 GUID: 0012ee47-9041-4b5d-9b77-535fba8b1442 (硬盘) GUID 别名: SUB_DISK 电源设置 GUID: 6738e2c4-e8a5-4a42-b16a-e040e769756e (在此时间后关闭硬盘) GUID 别名: DISKIDLE 最小可能的设置: 0x00000000 最大可能的设置: 0xffffffff 可能的设置增量: 0x00000001 可能的设置单位: 秒 当前交流电源设置索引: 0x0000ea24 当前直流电源设置索引: 0x0000ea24 子组 GUID: 02f815b5-a5cf-4c84-bf20-649d1f75d3d8 (Internet Explorer) 电源设置 GUID: 4c793e7d-a264-42e1-87d3-7a0d2f523ccd (JavaScript 计时器频率) 可能的设置索引: 000 可能的设置友好名称: 最大电源节省量 可能的设置索引: 001 可能的设置友好名称: 最高性能 当前交流电源设置索引: 0x00000001 当前直流电源设置索引: 0x00000000 子组 GUID: 0d7dbae2-4294-402a-ba8e-26777e8488cd (桌面背景设置) 电源设置 GUID: 309dce9b-bef4-4119-9921-a851fb12f0f4 (放映幻灯片) 可能的设置索引: 000 可能的设置友好名称: 可用 可能的设置索引: 001 可能的设置友好名称: 暂停 当前交流电源设置索引: 0x00000000 当前直流电源设置索引: 0x00000001 子组 GUID: 19cbb8fa-5279-450e-9fac-8a3d5fedd0c1 (无线适配器设置) 电源设置 GUID: 12bbebe6-58d6-4636-95bb-3217ef867c1a (节能模式) 可能的设置索引: 000 可能的设置友好名称: 最高性能 可能的设置索引: 001 可能的设置友好名称: 低节能 可能的设置索引: 002 可能的设置友好名称: 中等节能 可能的设置索引: 003 可能的设置友好名称: 最高节能 当前交流电源设置索引: 0x00000000 当前直流电源设置索引: 0x00000002 子组 GUID: 238c9fa8-0aad-41ed-83f4-97be242c8f20 (睡眠) GUID 别名: SUB_SLEEP 电源设置 GUID: 29f6c1db-86da-48c5-9fdb-f2b67b1f44da (在此时间后睡眠) GUID 别名: STANDBYIDLE 最小可能的设置: 0x00000000 最大可能的设置: 0xffffffff 可能的设置增量: 0x00000001 可能的设置单位: 秒 当前交流电源设置索引: 0x0000ea24 当前直流电源设置索引: 0x0000ea24 电源设置 GUID: 94ac6d29-73ce-41a6-809f-6363ba21b47e (允许混合睡眠) GUID 别名: HYBRIDSLEEP 可能的设置索引: 000 可能的设置友好名称: 关闭 可能的设置索引: 001 可能的设置友好名称: 启用 当前交流电源设置索引: 0x00000001 当前直流电源设置索引: 0x00000001 电源设置 GUID: 9d7815a6-7ee4-497e-8888-515a05f02364 (在此时间后休眠) GUID 别名: HIBERNATEIDLE 最小可能的设置: 0x00000000 最大可能的设置: 0xffffffff 可能的设置增量: 0x00000001 可能的设置单位: 秒 当前交流电源设置索引: 0x00000000 当前直流电源设置索引: 0x00000000 电源设置 GUID: bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d (允许使用唤醒定时器) GUID 别名: RTCWAKE 可能的设置索引: 000 可能的设置友好名称: 禁用 可能的设置索引: 001 可能的设置友好名称: 启用 可能的设置索引: 002 可能的设置友好名称: 仅限重要的唤醒计算器 当前交流电源设置索引: 0x00000001 当前直流电源设置索引: 0x00000001 子组 GUID: 2a737441-1930-4402-8d77-b2bebba308a3 (USB 设置) 电源设置 GUID: 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 (USB 选择性暂停设置) 可能的设置索引: 000 可能的设置友好名称: 已禁用 可能的设置索引: 001 可能的设置友好名称: 已启用 当前交流电源设置索引: 0x00000001 当前直流电源设置索引: 0x00000001 子组 GUID: 2e601130-5351-4d9d-8e04-252966bad054 (空闲复原) GUID 别名: SUB_IR 子组 GUID: 48672f38-7a9a-4bb2-8bf8-3d85be19de4e (中断路由控制设置) GUID 别名: SUB_INTSTEER 子组 GUID: 4f971e89-eebd-4455-a8de-9e59040e7347 (电源按钮和盖子) GUID 别名: SUB_BUTTONS 电源设置 GUID: 5ca83367-6e45-459f-a27b-476b1d01c936 (合上盖子操作) GUID 别名: LIDACTION 可能的设置索引: 000 可能的设置友好名称: 不采取任何操作 可能的设置索引: 001 可能的设置友好名称: 睡眠 可能的设置索引: 002 可能的设置友好名称: 休眠 可能的设置索引: 003 可能的设置友好名称: 关机 当前交流电源设置索引: 0x00000000 当前直流电源设置索引: 0x00000000 电源设置 GUID: 7648efa3-dd9c-4e3e-b566-50f929386280 (电源按钮操作) GUID 别名: PBUTTONACTION 可能的设置索引: 000 可能的设置友好名称: 不采取任何操作 可能的设置索引: 001 可能的设置友好名称: 睡眠 可能的设置索引: 002 可能的设置友好名称: 休眠 可能的设置索引: 003 可能的设置友好名称: 关机 可能的设置索引: 004 可能的设置友好名称: 关闭显示器 当前交流电源设置索引: 0x00000002 当前直流电源设置索引: 0x00000002 电源设置 GUID: 96996bc0-ad50-47ec-923b-6f41874dd9eb (睡眠按钮操作) GUID 别名: SBUTTONACTION 可能的设置索引: 000 可能的设置友好名称: 不采取任何操作 可能的设置索引: 001 可能的设置友好名称: 睡眠 可能的设置索引: 002 可能的设置友好名称: 休眠 可能的设置索引: 003 可能的设置友好名称: 关机 可能的设置索引: 004 可能的设置友好名称: 关闭显示器 当前交流电源设置索引: 0x00000002 当前直流电源设置索引: 0x00000002 电源设置 GUID: a7066653-8d6c-40a8-910e-a1f54b84c7e5 (「开始」菜单电源按钮) GUID 别名: UIBUTTON_ACTION 可能的设置索引: 000 可能的设置友好名称: 睡眠 可能的设置索引: 001 可能的设置友好名称: 休眠 可能的设置索引: 002 可能的设置友好名称: 关机 当前交流电源设置索引: 0x00000000 当前直流电源设置索引: 0x00000000 子组 GUID: 501a4d13-42af-4429-9fd1-a8218c268e20 (PCI Express) GUID 别名: SUB_PCIEXPRESS 电源设置 GUID: ee12f906-d277-404b-b6da-e5fa1a576df5 (链接状态电源管理) GUID 别名: ASPM 可能的设置索引: 000 可能的设置友好名称: 关闭 可能的设置索引: 001 可能的设置友好名称: 中等电源节省量 可能的设置索引: 002 可能的设置友好名称: 最大电源节省量 当前交流电源设置索引: 0x00000001 当前直流电源设置索引: 0x00000002 子组 GUID: 54533251-82be-4824-96c1-47b60b740d00 (处理器电源管理) GUID 别名: SUB_PROCESSOR 电源设置 GUID: 893dee8e-2bef-41e0-89c6-b55d0929964c (最小处理器状态) GUID 别名: PROCTHROTTLEMIN 最小可能的设置: 0x00000000 最大可能的设置: 0x00000064 可能的设置增量: 0x00000001 可能的设置单位: % 当前交流电源设置索引: 0x00000005 当前直流电源设置索引: 0x00000005 电源设置 GUID: 94d3a615-a899-4ac5-ae2b-e4d8f634367f (系统散热方式) GUID 别名: SYSCOOLPOL 可能的设置索引: 000 可能的设置友好名称: 被动 可能的设置索引: 001 可能的设置友好名称: 主动 当前交流电源设置索引: 0x00000001 当前直流电源设置索引: 0x00000000 电源设置 GUID: bc5038f7-23e0-4960-96da-33abaf5935ec (最大处理器状态) GUID 别名: PROCTHROTTLEMAX 最小可能的设置: 0x00000000 最大可能的设置: 0x00000064 可能的设置增量: 0x00000001 可能的设置单位: % 当前交流电源设置索引: 0x00000064 当前直流电源设置索引: 0x00000064 子组 GUID: 7516b95f-f776-4464-8c53-06167f40cc99 (显示) GUID 别名: SUB_VIDEO 电源设置 GUID: 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e (在此时间后关闭显示) GUID 别名: VIDEOIDLE 最小可能的设置: 0x00000000 最大可能的设置: 0xffffffff 可能的设置增量: 0x00000001 可能的设置单位: 秒 当前交流电源设置索引: 0x00000258 当前直流电源设置索引: 0x0000012c 电源设置 GUID: aded5e82-b909-4619-9949-f5d71dac0bcb (显示器亮度) 最小可能的设置: 0x00000000 最大可能的设置: 0x00000064 可能的设置增量: 0x00000001 可能的设置单位: % 当前交流电源设置索引: 0x00000064 当前直流电源设置索引: 0x00000028 电源设置 GUID: f1fbfde2-a960-4165-9f88-50667911ce96 (显示器亮度变暗) 最小可能的设置: 0x00000000 最大可能的设置: 0x00000064 可能的设置增量: 0x00000001 可能的设置单位: % 当前交流电源设置索引: 0x00000032 当前直流电源设置索引: 0x00000032 电源设置 GUID: fbd9aa66-9553-4097-ba44-ed6e9d65eab8 (启用自适应亮度) GUID 别名: ADAPTBRIGHT 可能的设置索引: 000 可能的设置友好名称: 关闭 可能的设置索引: 001 可能的设置友好名称: 启用 当前交流电源设置索引: 0x00000000 当前直流电源设置索引: 0x00000000 子组 GUID: 8619b916-e004-4dd8-9b66-dae86f806698 (状态感知电源操作) GUID 别名: SUB_PRESENCE 子组 GUID: 9596fb26-9850-41fd-ac3e-f7c3c00afd4b (“多媒体”设置) 电源设置 GUID: 03680956-93bc-4294-bba6-4e0f09bb717f (共享媒体时) 可能的设置索引: 000 可能的设置友好名称: 允许计算机睡眠 可能的设置索引: 001 可能的设置友好名称: 阻止计算机在一段时间不活动后进入睡眠状态 可能的设置索引: 002 可能的设置友好名称: 允许计算机进入离开模式 当前交流电源设置索引: 0x00000001 当前直流电源设置索引: 0x00000000 电源设置 GUID: 34c7b99f-9a6d-4b3c-8dc7-b6693b78cef4 (播放视频时) 可能的设置索引: 000 可能的设置友好名称: 优化视频质量 可能的设置索引: 001 可能的设置友好名称: 平衡 可能的设置索引: 002 可能的设置友好名称: 优化节能 当前交流电源设置索引: 0x00000000 当前直流电源设置索引: 0x00000001 子组 GUID: e276e160-7cb0-43c6-b20b-73f5dce39954 子组 GUID: e73a048d-bf27-4f12-9731-8b2076e8891f (电池) GUID 别名: SUB_BATTERY 电源设置 GUID: 637ea02f-bbcb-4015-8e2c-a1c7b9c0b546 (关键级别电池操作) GUID 别名: BATACTIONCRIT 可能的设置索引: 000 可能的设置友好名称: 不采取任何操作 可能的设置索引: 001 可能的设置友好名称: 睡眠 可能的设置索引: 002 可能的设置友好名称: 休眠 可能的设置索引: 003 可能的设置友好名称: 关机 当前交流电源设置索引: 0x00000002 当前直流电源设置索引: 0x00000002 电源设置 GUID: 8183ba9a-e910-48da-8769-14ae6dc1170a (电池电量水平低) GUID 别名: BATLEVELLOW 最小可能的设置: 0x00000000 最大可能的设置: 0x00000064 可能的设置增量: 0x00000001 可能的设置单位: % 当前交流电源设置索引: 0x0000000a 当前直流电源设置索引: 0x0000000a 电源设置 GUID: 9a66d8d7-4ff7-4ef9-b5a2-5a326ca2a469 (关键电池电量水平) GUID 别名: BATLEVELCRIT 最小可能的设置: 0x00000000 最大可能的设置: 0x00000064 可能的设置增量: 0x00000001 可能的设置单位: % 当前交流电源设置索引: 0x00000005 当前直流电源设置索引: 0x00000005 电源设置 GUID: bcded951-187b-4d05-bccc-f7e51960c258 (低电量通知) GUID 别名: BATFLAGSLOW 可能的设置索引: 000 可能的设置友好名称: 关闭 可能的设置索引: 001 可能的设置友好名称: 启用 当前交流电源设置索引: 0x00000001 当前直流电源设置索引: 0x00000001 电源设置 GUID: d8742dcb-3e6a-4b3c-b3fe-374623cdcf06 (低电量操作) GUID 别名: BATACTIONLOW 可能的设置索引: 000 可能的设置友好名称: 不采取任何操作 可能的设置索引: 001 可能的设置友好名称: 睡眠 可能的设置索引: 002 可能的设置友好名称: 休眠 可能的设置索引: 003 可能的设置友好名称: 关机 当前交流电源设置索引: 0x00000000 当前直流电源设置索引: 0x00000000 电源设置 GUID: f3c5027d-cd16-4930-aa6b-90db844a8f00 (保留电池电量) 最小可能的设置: 0x00000000 最大可能的设置: 0x00000064 可能的设置增量: 0x00000001 可能的设置单位: % 当前交流电源设置索引: 0x00000007 当前直流电源设置索引: 0x00000007
内容很长,但是我觉得首先要看明白它的结构,然后才能明白下面的命令到底啥意思。这个文件其实和XML文件结构很像。
- 根元素为电源方案 GUID:代表当前的电源方案是什么?注意后面注释是平衡,表示当前处于平衡方案。通过查询powercfg -l 可以查询当前系统所有的方案。
- 二级元素为子组GUID:一个大的集合
三级元素为电池设置GUID:具体的参数含义
举例如下
电源设置 GUID: 637ea02f-bbcb-4015-8e2c-a1c7b9c0b546 (关键级别电池操作)
GUID 别名: BATACTIONCRIT
可能的设置索引: 000
可能的设置友好名称: 不采取任何操作
可能的设置索引: 001
可能的设置友好名称: 睡眠
可能的设置索引: 002
可能的设置友好名称: 休眠
可能的设置索引: 003
可能的设置友好名称: 关机
当前交流电源设置索引: 0x00000002
当前直流电源设置索引: 0x00000002
可能的设置索引指明了可以使用的值范围,而当前*流电源设置索引表示交/直流电源设置值。
所以如果希望更改关键级别电池操作的值为关机,那么命令如下所示。
powercfg -SETDCVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e(根) e73a048d-bf27-4f12-9731-8b2076e8891f(二级) 637ea02f-bbcb-4015-8e2c-a1c7b9c0b546(三级) 003
禁止睡眠
禁止睡眠的脚本如下所示,需要注意的是,要将这个脚本的编码设置为GB2312的编码,否则cmd中不认识UTF-8格式的汉字(编码问题非常蛋疼!!)
@echo offpowercfg -q > powercfg.txt:section onefor /f "tokens=3 delims= " %%i IN ('powercfg -q ^| find "电源方案 GUID:"') do Set StrOne=%%ifor /f "tokens=3 delims= " %%i IN ('powercfg -q ^| find "电源按钮和盖子"') do Set StrTwo=%%ifor /f "tokens=3 delims= " %%i IN ('powercfg -q ^| find "合上盖子操作"') do Set StrThree=%%iecho "####section one###"echo StrOne:%StrOne%echo StrTwo:%StrTwo%echo StrThree:%StrThree%powercfg -SETACVALUEINDEX %StrOne% %StrTwo% %StrThree% 000powercfg -SETDCVALUEINDEX %StrOne% %StrTwo% %StrThree% 000:section twofor /f "tokens=3 delims= " %%i IN ('powercfg -q ^| find "(电源按钮操作)"') do Set StrThree=%%iecho "####section two###"echo StrTwo:%StrTwo%echo StrThree:%StrThree%powercfg -SETACVALUEINDEX %StrOne% %StrTwo% %StrThree% 002powercfg -SETDCVALUEINDEX %StrOne% %StrTwo% %StrThree% 002:section threefor /f "tokens=3 delims= " %%i IN ('powercfg -q ^| find "(睡眠按钮操作)"') do Set StrThree=%%iecho "####section three###"echo StrTwo:%StrThree%echo StrThree:%StrThree%powercfg -SETACVALUEINDEX %StrOne% %StrTwo% %StrThree% 002powercfg -SETDCVALUEINDEX %StrOne% %StrTwo% %StrThree% 002:section four:多久硬盘断电(0为never)powercfg -x -disk-timeout-ac 000powercfg -x -disk-timeout-dc 000:section five(never):多久睡眠powercfg -x -standby-timeout-ac 000powercfg -x -standby-timeout-dc 000pause
- windows 电源管理之禁用睡眠脚本
- 如何禁用Windows屏保和电源管理
- 如何禁用Windows屏保和电源管理
- WINDOWS系统电源管理:休眠,睡眠,待机,关机
- 禁用屏保和电源管理
- Windows CE的电源管理之三
- Windows CE的电源管理之三
- Windows CE的电源管理之二
- Windows CE的电源管理之三
- Windows CE的电源管理之三
- Linux电源管理脚本
- [3月21日的脚本] 在NIC电源管理中禁用“关闭此设备以节约电源”功能
- 关于windows电源管理
- Windows CE 电源管理
- 设置windows电源管理
- Windows CE 电源管理
- Windows CE 电源管理
- Windows CE 电源管理
- Spring Boot 添加Log4j框架
- android进程间通讯aidl demo
- Linux下安装Tomcat
- Java集合类详解
- ios开发--iOS APP安全策略之加固保护原理
- windows 电源管理之禁用睡眠脚本
- HTML中的 <!DOCTYPE> 标签
- 认识hadoop
- data.msg.undefined(传过来的值不是JSON而是字符串)
- JS与PHP在函数传参方面有点不同,PHP形参与实参个数要匹配,而JS就灵活多了,可以随意传参,实参比形参少或多都不会报错
- java与C++不同
- ReactNative组件-react-native-scrollable-tab-view
- 工模-控制屏幕亮度
- Eclipse无法启动报An internal error occurred during: "reload maven project". java.lang.NullPointerExceptio