Как перевести компьютер в спящий режим из командной строки / меню «Выполнить»?

Как перевести компьютер в спящий режим из командной строки / меню «Выполнить»?
На чтение
20 мин.
Просмотров
12
Дата обновления
11.11.2024

Я знаю, что почти все в Windows, например открытие любого приложения, можно выполнить из командной строки или из меню Выполнить . .

Как перевести компьютер в сон или выключить ? Какая для этого нужна команда?


Вы найдете shutdown.exe своим другом.

Другие удобные команды см. в этом посте:

Sleep Computer (подробнее на https://superuser.com/a/463652/249349)

Заблокировать рабочую станцию ​​

Компьютер в спящем режиме

  см. ответы Скотта Чемберлена и Эрика Л.  

Перезагрузить компьютер

  Shutdown.exe -r -t 00  

Завершение работы компьютера

   Shutdown.exe -s -t 00  

ИЗМЕНИТЬ/ОБНОВИТЬ:

Кажется, что спящий компьютер проблематичен, если спящий режим включен.

Копирование из других ответов:

Вы можете попробовать PsShutdownor:

Команда rundll32. exe powrprof.dll, SetSuspendState 0,1,0 для сна является правильным, однако он перейдет в режим гибернации вместо сна, если вы не отключите его.

Вот как это сделать:

Перейдите в меню «Пуск» и откройте командную строку с повышенными привилегиями, набрав cmd.exe, ri Нажмите и выберите Запуск от имени администратора. Введите следующую команду:

  powercfg -hibernate off  

Методы, опубликованные другими людьми, работают некорректно, если на компьютере включен режим гибернации, компьютер не выходит из спящего режима с помощью клавиатуры или, что более важно, не выходит из спящего режима при выполнении запланированной задачи.

Одним из инструментов Microsoft Sysinternals является PsShutdown с помощью команды psshutdown -d -t 0 , он будет правильно спать, не переходить в спящий режим , компьютер

7


Команда rundll32.exe powrprof.dll, SetSuspendState 0,1,0 для сна является правильным, однако он перейдет в режим гибернации вместо сна, если вы не отключите его.

Вот как это сделать:

Перейдите в меню «Пуск» и откройте командную строку с повышенными привилегиями, набрав cmd.exe , щелкнув правой кнопкой мыши и выбрав Запуск от имени администратора . Введите следующую команду:

  powercfg -hibernate off  

5


NirCmd работает в Windows 8 (я предполагаю, что он также работает с Windows 7) → http://www.nirsoft.net/ utils/nircmd.html
Команда находится в режиме standby , но переводит компьютер в спящий режим.

  nircmd.exe standby   

Если у вас включен гибридный сон, он будет работать; т.е. переводит компьютер в спящий режим и копирует память на диск в случае отключения питания.

1


Смотрите бесплатные утилита Wizmo, которая может делать очень много вещей.
Вероятно, вам нужна следующая команда:

wizmo standby

5


Вы можете активировать параметры приостановки или гибернации из командной строки, как указано ниже, и упоминается в этой статье.

 % windir%  System32  rundll32.exe powrprof.dll, SetSuspendState  

Если ваш компьютер установлен, чтобы разрешить спящий режим, то указанная выше команда запустит спящий режим. Если функция гибернации отключена, он перейдет в состояние ожидания. Как уже ранее ответили другие пользователи, shutdown.exe/? предоставит множество вариантов завершения работы.

1


Я создал ярлык для rundll32.exe powrprof.dll, SetSuspendState 0,1,0 (тоже пробовал с 0,0,0), но запуск ярлыка, похоже, переводил мой компьютер в спящий режим. Я не мог разбудить компьютер с помощью клавиатуры; Мне пришлось нажать кнопку питания, и ПК показал сообщения на материнской плате и т. Д.

Прочитав документ Windows API, я создал очень простую программу всего с 3 строками ввода. Я загрузил скомпилированный мной исполняемый файл на эту страницу (щелкните «SleepTest.exe»), но этот файл через некоторое время можно удалить (это бесплатный сайт для размещения файлов, который я только что нашел с помощью быстрого поиска в Google).

Если вы мне не доверяете (что совершенно нормально) или файл был удален, вы, конечно, можете скомпилировать код самостоятельно. Вам необходимо добавить PowrProf.lib к дополнительным зависимостям компоновщика.

  #include "stdafx.h" #include "windows.h"  

rundll32.exe powrprof.dll, SetSuspendState 0,1,0 , похоже, делает то же самое, но почему-то программа, указанная выше, не переводила компьютер в спящий режим. Я мог мгновенно разбудить компьютер (без сообщений на материнской плате и т. Д.), Нажав любую клавишу на клавиатуре.


Часть вопроса, связанная с выключением, понятна для всех.
shutdown.exe/? показывает все варианты выключения/перезапуска/дополнительных параметров загрузки/загрузки прошивки.

Но я вижу, как много шума разбрасывается по поводу сна.
Все понимают, что rundll32. exe не следует использовать для вызова случайных функций, и здесь он работает для спящего режима полностью случайно. Но такова природа Windows — черный ящик, в котором люди ковырялись и находили сотни обходных путей для выполнения работы (крик до советов).

Их так много. « правильные » решения, предлагающие внешние инструменты , но я не могу найти собственный (гибридный/pinvoke/любой другой) пакетный сценарий , даже если этот вопрос оставался активным на протяжении многих лет.
Итак, вот мой простой power_sleep.bat :

  @echo off & mode 32,2 & color cf & title Power Sleepset "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  

Он даже работает как большая однострочная команда:

  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 (); " 


Вы должны сначала отключить спящий режим в Windows, а затем перевести компьютер в состояние сна . Используйте следующие две команды:

  powercfg -hibernate offrundll32.exe powrprof.dll, SetSuspendState 0,1,0  

и для выполнения обратного действия Перевести компьютер в режим гибернации, используйте следующие команды:

  powercfg -hibernate onrundll32.exe powrprof.dll, SetSuspendState Hibernate  

4


Если у вас есть Python (с pywin32), вы также можете вызвать эту функцию SetSuspendState напрямую с помощью:

  import ctypesctypes.windll.PowrProf.SetSuspendState (0, 1, 0)  

Это может быть легко быть помещенным в пакетный файл или ярлык типа:

  pythonw -c "import ctypes;  ctypes.windll.PowrProf.SetSuspendState (0, 1, 0) " 

Итак, если у вас нет файлов .py, связанных с интерпретатором, вы можете просто дважды щелкнуть связь.


Вот статья об использовании интерфейса командной строки для завершения работы.

Microsoft предоставляет PsTools, который позволяет завершить работу через интерфейс командной строки вместе с другими полезными инструментами. Вы можете получить это здесь.


у меня работает только QUICK SLEEPER (работает в Windows 7,8,10).

ps исходный код доступен здесь.

2



0 Комментариев
Комментариев на модерации: 0
Оставьте комментарий