如何从命令提示符/运行菜单让计算机进入睡眠状态?

Laz*_*zer 165 windows shutdown sleep run-dialog command-line

我知道 Windows 上的几乎所有操作,例如打开任何类型的应用程序,都可以从命令提示符或“运行”菜单中完成。

我怎样才能让我的电脑进入睡眠状态关闭它那命令是什么?

bra*_*ter 131

你会发现shutdown.exe成为你的朋友。

其他方便的命令见这篇文章:

睡眠计算机(在https://superuser.com/a/463652/249349阅读更多信息)

锁工位

休眠计算机 - 请参阅Scott ChamberlainEric L.

重启电脑

Shutdown.exe -r -t 00
Run Code Online (Sandbox Code Playgroud)

关闭计算机

Shutdown.exe -s -t 00
Run Code Online (Sandbox Code Playgroud)

编辑/更新:

如果打开休眠状态,似乎使计算机休眠是有问题的。

从其他答案复制:

您可以尝试PsShutdown 或:

用于睡眠的命令 rundll32.exe powrprof.dll,SetSuspendState 0,1,0 是正确的 - 但是,如果您不关闭休眠,它将休眠而不是休眠。

以下是如何做到这一点:

转到“开始”菜单并通过键入 cmd.exe、右键单击并选择以管理员身份运行来打开提升的命令提示符。输入以下命令:

powercfg -hibernate off
Run Code Online (Sandbox Code Playgroud)

  • `rundll32.exe powrprof.dll,SetSuspendState 0,1,0` 的问题在于它无法正常工作。`SetSuspendState` 将使计算机进入一种混合睡眠/休眠模式。当您使用开始菜单中的睡眠按钮时,您可以通过按键盘上的任意键使计算机从睡眠状态恢复。使用此命令行,由于更深的睡眠状态,恢复速度要慢得多,并且只有按下计算机上的电源按钮才能恢复。它无法恢复按键。那么......你如何让它像正常待机一样进入睡眠状态 - 只需按一下键就可以恢复? (23认同)
  • 否决票并非毫无根据。您的回答本身并不能解决问题。读者应该能够从答案中收集到足够有用的信息来解决问题*而*不必*遵循任何可能损坏或死机的其他站点的链接。 (8认同)
  • `rundll32` 不应该用于调用 `SetSuspendState`,因为它的签名与 `rundll32` 期望的签名不匹配。请参阅:https://support.microsoft.com/en-us/kb/164787 和 https://msdn.microsoft.com/en-us/library/windows/desktop/aa373201(v=vs.85).aspx第一个参数得到垃圾而不是 FALSE 值。这就是为什么它休眠而不是睡觉的原因。 (7认同)
  • 由于没有回答所提出的问题而被否决:即使在链接页面中,当启用休眠时,所描述的使机器进入睡眠状态的方法也不起作用。 (5认同)
  • 我也测试了 Sleep 命令,也可以确认它没有按预期工作。它与仇恨/拖钓无关,但如果该命令不起作用,那么问题就没有答案,因为这是问题的主要部分。 (4认同)
  • 投反对票,因为这实际上并没有回答问题(如何触发睡眠)。Shutdown.exe 不会触发睡眠,只会触发关机、重启或休眠。要休眠,需要运行:rundll32.exe powrprof.dll,SetSuspendState 0,1,0 (3认同)
  • 如果您有权限,您可以使用 shutdown.exe 启动网络上另一台计算机的远程关闭。可以很好地恶作剧。(不承担任何责任) (2认同)
  • @SilverbackNet 请提供您自己的答案,而不是在评论中讨厌 (2认同)

Sco*_*ain 94

如果计算机启用了休眠功能,其他人发布的方法将无法正常工作,计算机将无法在键盘上唤醒,更重要的是,在计划任务上无法唤醒。

微软的 Sysinternals 工具之一是PsShutdown使用命令psshutdown -d -t 0它将正确睡眠,而不是休眠,一台计算机

  • 在 Windows 10 x64 版本 1709 中对我有用。 (3认同)
  • 适用于我的 Windows 10(甚至不是管理员)。 (3认同)
  • 适用于 Windows 10 x64 Build 15063。需要[下载 PsTools](http://technet.microsoft.com/en-us/sysinternals/bb897541) 并将 `psshutdown.exe` 从存档复制到例如 `C:\ Windows\System32` 以便能够使用没有路径前缀的命令。然后需要以管理员权限执行 `psshutdown -d -t 0` 以暂停。**这应该是公认的答案**,因为它可以回答问题,即使没有使用 Windows 预装的工具。 (3认同)

小智 26

rundll32.exe powrprof.dll,SetSuspendState 0,1,0sleep命令是正确的 - 但是,如果您不关闭休眠,它将休眠而不是 sleep。

以下是如何做到这一点:

转到“开始”菜单并通过键入cmd.exe、右键单击并选择“以管理员身份运行”来打开提升的命令提示符。输入以下命令:

powercfg -hibernate off
Run Code Online (Sandbox Code Playgroud)

  • 我认为这是真正解决它的第一个答案。我把这两行( -hibernate 首先关闭)并制作了一个让电脑进入睡眠状态的批处理文件。一个问题是它基本上关闭了休眠,这不是我想要的,所以为了解决它,我添加了一个在“工作站解锁”上触发的计划任务,以使用唯一一行是“的批处理重新打开休眠” powercfg -休眠关闭”。然后我为第一个批处理文件配置了一个快捷键。完毕。像魅力一样工作,谢谢! (5认同)
  • `rundll32` 不应该用于调用 `SetSuspendState`,因为它的签名与 `rundll32` 期望的签名不匹配。请参阅:https://support.microsoft.com/en-us/kb/164787 和 https://msdn.microsoft.com/en-us/library/windows/desktop/aa373201(v=vs.85).aspx第一个参数是垃圾而不是 FALSE。这就是为什么它休眠而不是睡觉的原因。 (4认同)

Eri*_*c L 13

NirCmd 适用于 Windows 8(我假设它也适用于 Windows 7)→ http://www.nirsoft.net/utils/nircmd.html
命令是standby,但它会使计算机进入睡眠状态。

nircmd.exe standby
Run Code Online (Sandbox Code Playgroud)

如果您启用了混合睡眠,它将起作用;即,它使计算机进入睡眠状态,并在断电时将内存复制到磁盘。

  • 这无需提升为管理员即可工作。在启用或不启用休眠的情况下均可工作。在混合睡眠下按预期工作。 Win10 的好解决方案。 (2认同)

Blu*_*vil 7

您可以从命令行启动挂起或休眠选项,如下所示并在本文中引用。

%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState
Run Code Online (Sandbox Code Playgroud)

如果您的计算机设置为允许休眠,则上述命令将启动休眠。如果休眠功能被禁用,则它将进入待机状态。正如其他用户之前回答的那样,shutdown.exe /?将提供许多关闭选项。

  • `rundll32` 不应该用于调用 `SetSuspendState`,因为它的签名与 `rundll32` 期望的签名不匹配。请参阅:https://support.microsoft.com/en-us/kb/164787 和 https://msdn.microsoft.com/en-us/library/windows/desktop/aa373201(v=vs.85).aspx第一个参数获取垃圾而不是 FALSE,因此它总是休眠而不是进入睡眠状态。 (3认同)

Ave*_*eYo 5

每个人都清楚问题的关闭部分。
shutdown.exe /?显示关闭/重启/高级选项启动/固件启动的所有选项。

但是我看到很多关于睡眠部分的抨击。
每个人都知道它rundll32.exe不应该用于调用随机函数,它只是巧合地在这里用于休眠。但这就是 Windows 的本质 - 一个人们四处探索并找到数百种解决方法来完成工作的黑匣子(对 dostips 大喊大叫)。

有这么多“适当的”解决方案提出了外部工具,但我似乎找不到本机(混合/pinvoke/其他)批处理脚本,即使这个问题多年来一直很活跃。
所以这是我的简单power_sleep.bat

@echo off &mode 32,2 &color cf &title Power Sleep
set "s1=$m='[DllImport ("Powrprof.dll", SetLastError = true)]"
set "s2=static extern bool SetSuspendState(bool hibernate, bool forceCritical, bool disableWakeEvent);"
set "s3=public static void PowerSleep(){ SetSuspendState(false, false, false); }';"
set "s4=add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"
set "ps_powersleep=%s1%%s2%%s3%%s4%" 
call powershell.exe -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -Command "%ps_powersleep:"=\"%"
exit
Run Code Online (Sandbox Code Playgroud)

它甚至可以作为一个大的单行命令:

powershell.exe -C "$m='[DllImport(\"Powrprof.dll\",SetLastError=true)]static extern bool SetSuspendState(bool hibernate,bool forceCritical,bool disableWakeEvent);public static void PowerSleep(){SetSuspendState(false,false,false); }';add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

592027 次

最近记录:

4 年,3 月 前