it-swarm.xyz

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

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

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

140
Lazer

Вы найдете shutdown.exe, чтобы быть вашим другом.

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

Спящий компьютер (подробнее на https://superuser.com/a/463652/249349 )

Блокировка рабочей станции

Спящий компьютер

see answers by Scott Chamberlain and Eric L

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

Shutdown.exe -r -t 00

Выключить компьютер

Shutdown.exe -s -t 00

EDIT/UPDATE:

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

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

Вы можете попробовать PsShutdown или:

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

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

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

powercfg -hibernate off
127
brandstaetter

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

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

82
Scott Chamberlain

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

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

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

powercfg -hibernate off
19
user35414

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

nircmd.exe standby

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

9
Eric L

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

wizmo Standby

3
harrymc

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

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

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

#include "stdafx.h"
#include "windows.h" <-- Added this to make it work on Windows.
#include "PowrProf.h" <-- Added this to use the sleep function.

int main()
{
    SetSuspendState(FALSE, FALSE, FALSE); <-- Added this actual call.
    return 0;
}

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

3
Damn Vegetables

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

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

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

2
BlueDevil

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

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

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

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

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

1
dash-tom-bang

Отключение части вопроса понятно для всех.
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

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

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

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

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

1
T.Todua

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

powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0

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

powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate
1
Mohsen Abasi

Здесь это статья об использовании CLI для выключения.

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

1
wonton