Windows命令行shutdown命令和快速启动之间的一点坑
Hybrid shutdown
自Win8.1开始,在休眠和完全关闭之外,多出一个“混合关闭(hybird shutdown)”的状态。在“控制面板\硬件和声音\电源选项\系统设置”中开启快速启动选项后,在开始菜单中选择关机,设备将进入混合关闭状态。混合关闭状态下,用户会话被关闭,而内核会话处于休眠。
Shutdown.exe -hybrid
在cmd命令行中,可以通过运行shutdown.exe来执行关机。shutdown.exe的hybrid参数表示此次关机执行完全关闭还是混合关闭。
- 不带hybrid参数时,无论何时,都将执行完全关闭
- 带hybrid参数时,取决于系统的快速启动设置
- 启用快速启动时,执行混合关闭
- 禁用快速启动时,执行完全关闭
下面列举了四种通过shutdown命令来执行关机的情形:
- 系统启用快速启动,在cmd中执行
shutdown /s /hybrid /t 0 - 系统启用快速启动,在cmd中执行
shutdown /s /t 0 - 系统禁用快速启动,在cmd中执行
shutdown /s /hybrid /t 0 - 系统禁用快速启动,在cmd中执行
shutdown /s /t 0
得到的结果是:Hybrid shutdown、Shutdown、Shutdown、Shutdown
那么有没有办法通过代码或cmd命令行禁用/启用快速启动功能呢?
代码中启用/禁用快速启动
方法一 通过注册表项设置快速启动
与“控制面板\硬件和声音\电源选项\系统设置”中快速启动复选框关联的注册表是
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power\{HiberbootEnabled}
设置为1时,启用快速启动
设置为0时,禁用快速启动


方法二 通过powercfg命令设置快速启动

command line
powercfg /H ON //启用休眠功能
powercfg /H OFF //禁用休眠功能
需要注意的是,powercfg /H 控制的是休眠功能,而不是快速启动功能。什么意思呢?前面提到过,混合关闭时,用户会话关闭,而内核会话休眠。怎么休眠呢?其实和系统休眠类似,因此也可以说,快速启动功能依赖于休眠功能。
所以,当使用powercfg /H OFF禁用休眠功能后,不仅快速启动会被禁用,也无法再使系统进入休眠。可以看到,休眠功能禁用后,控制面板中休眠和快速启动对应的设置已经消失。因此,禁用休眠功能后,无论注册表项的值是多少,快速启动都不会生效,关机总是会执行完全关闭。


Windows命令行shutdown命令和快速启动之间的一点坑的更多相关文章
- Windows命令行(DOS命令)教程
一.命令行简介 命令行就是在Windows操作系统中打开DOS窗口,以字符串的形式执行Windows管理程序. 在这里,先解释什么是DOS? DOS——Disk Operation System 磁盘 ...
- Windows命令行(DOS命令)教程 -1 (转载) http://www.pconline.com.cn/pcedu/rookie/basic/10111/15325.html
一.命令行简介 命令行就是在Windows操作系统中打开DOS窗口,以字符串的形式执行Windows管理程序. 在这里,先解释什么是DOS? DOS--Disk Operation System 磁盘 ...
- Linux和windows下的shutdown命令
Linux下的shutdown命令 shutdown [options] [time] [wall] options: --help 获取帮助 -h 关机 -r 重启 -c 取消 -k 仅显示警告信息 ...
- Oozie命令行常用命令汇总[转]
Oozie命令行常用命令汇总 有时候脚本跑多了就不愿意在OozieWeb端去看脚本的运行情况了.还好Oozie提供了很多命令行命令.能通过命令行直接检索自己想看到的脚本信息.在这里简单进行一下总结.一 ...
- Linux命令行与命令
Linux命令行与命令 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux的命令是很重要的工具,也往往是初学者最大的瓶 ...
- 命令行工具命令 - run包到手机里
命令行工具命令 你完全可以选择不输入以下这些命令,执行这些命令的结果与在 Android Studio 中单击"运行"按钮是一样的. chmod +x gradlew - 此命令只 ...
- 【Linux】1、命令行及命令参数
命令行及命令参数 文章目录 命令行及命令参数 1.命令行提示符 2.命令和命令参数 简单的命令 date ls 命令参数 短参数(一个字母) 长参数(多个字母) 参数的值 其它参数 3.小结 4.参考 ...
- Windows命令行(DOS命令)教程–2 (转载) http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_1.html
二.符号约定 为了便于说明格式,这里我们使用了一些符号约定,它们是通用的: C: 盘符 Path 路径 Filename 文件名 .ext 扩展名 Filespec 文件标识符 [ ] 方括号中的项目 ...
- linux命令行—《命令行快速入门》
pwd print working directory 打印工作目录 hostname my computer's network name 电脑在网络中的名称 mkdir make director ...
- 春节前“摸鱼”指南——SCA命令行工具助你快速构建FaaS服务
春节将至,身在公司的你是不是已经完全丧失了工作的斗志? 但俗话说得好:"只要心中有沙,办公室也能是马尔代夫." 职场人如何才能做到最大效能地带薪"摸鱼",成为了 ...
随机推荐
- elk收集分析nginx日志,并绘制图形
一.修改nginx配置 把nginx日志修改成json格式,在nginx.conf中添加如下内容,重启nginx. log_format log_json '{"@timestamp&quo ...
- 使用 gitee 托管你的 go 模块
前言 实话实说, github 作为这个球上顶级的代码托管平台, 公司/企业/开发者的认可和参与度是非常高的. 但是因为某些原因 特色墙, 国内使用 github 的体验不是非常好 速度慢 不靠谱同学 ...
- IDEA target中没有class文件/target中有class没有yml文件/yml文件不显示叶子
target中没有class文件.表现为文件显示红波浪线,但是点进去自己又好了,但是编译会说找不到.点进入target文件夹发现没有class文件,只有yml文件或者什么都没有 解决方法:rebuil ...
- Git错误,Updates were rejected because the tip of your current branch is behind
问题:Updates were rejected because the tip of your current branch is behind 在push代码时,遇到这种问题Updates wer ...
- sql学习day2——运用case进行有条件的update(续day1)
1.薪水表,如下所示,要求:为下一年调整工资22000以下的员工涨工资10%,24000以上的员工减少10% 思考:如果先update薪水24000以上的员工,假设某工资为24000,24000*(1 ...
- EFCore(五)——多个DBContext的Code First指定对应的DBContext更新
此环境为ASP.NET Core的项目 1.在需要更新的DBContext里添加空的构造函数 2.打开Nuget命令行选择对应的目录位置 3.带参数-Context指定对应的DBContext 1. ...
- kali安装charles
00X01 kali安装charles wget -q -O - http://www.charlesproxy.com/packages/apt/PublicKey | sudo apt-key a ...
- 信息资源管理综合题之“LJ集团信息化项目规划问题”
一.LJ集团是北京的一家规模巨大的房地产投资公司,早在15年前,该公司出现了如下几个问题:每个业务员手上的用户资料,其他人无法得知,从而导致员工离职时会流失大量潜在客户:业务员繁忙的时候,无法满足客户 ...
- .NET 8 开发的跨平台多商户第三方支付SDK
前言 快速发展的互联网应用开发中,支付功能已成为各类平台不可或缺的一环.为了帮助大家更高效地接入主流支付渠道,推荐一套基于 .NET 开发的第三方支付 SDK.该 SDK 支持跨平台运行,适用于多种操 ...
- WPF 的 FlowDocumentScrollViewer滚动到最底下的方法
官网上好像并没有直接给相应的接口和方法. 发现一种有效的方法: 先说方法: ScrollViewer sv = flowScrollViewer.Template.FindName("PAR ...