Как сценарий Windows 7 "спящий режим" команда

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

у меня это прекрасно работает через меню "Пуск", но я хочу написать сценарий в виде чего-то, что может быть запущено планировщиком задач. Exe, пакетный сценарий или сценарий Powershell будет работать хорошо

я экспериментировал с PowrProf SetSuspendState и powercfg -h off в скриптах без удачи, он всегда просто идет прямо в Режим ожидания или спящий режим и полностью выключается

9
задан benwh
02.05.2023 9:27 Количество просмотров материала 3668
Распечатать страницу

3 ответа

Я понял свое решение из это очень полезным пользователем @jnL (Пожалуйста, поддержите его вклад!) Он работает на моем win7 HP lappy и делает его "спящим" так же, как если бы я выбрал Sleep из окна меню Пуск GUI, т. е.

Keeps your session in memory and puts the computer in
a low-power state so that you can quickly resume
working.

теперь, когда я добавил этот сценарий в свой профиль PowerShell C:\Users\user_name\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

function sleepy_time {
Add-Type -AssemblyName System.Windows.Forms
$PowerState = [System.Windows.Forms.PowerState]::Suspend;
$Force = $false;
$DisableWake = $false;
[System.Windows.Forms.Application]::SetSuspendState($PowerState, $Force, $DisableWake);
}

new-alias -name nap -value sleepy_time

...когда я вхожу nap at в командной строке PowerShell мой ноутбук переходит в спящий режим, вентилятор замедляет вращение, а потом, когда я переместите мышь или нажмите пробел (и т. д...) он просыпается на экране входа в систему.

обратите внимание, что rundll32.решение exe, по-видимому, повреждает стек, за комментарий в этой теме на @пользователя награду ссылка на этот ответ: https://superuser.com/a/331545/21887

3
отвечен Mr. Kennedy 2023-05-03 17:15

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

rundll32 powrprof.dll,SetSuspendState

из комментариев там, похоже, вам также нужно убедиться, что гибридный спящий режим включен в параметрах конфигурации питания и, возможно,Активировать Гибридный Спящий Режим в BIOS, в зависимости от вашей системы.

4
отвечен martineau 2023-05-03 19:32

используя сценарий, упомянутый в предыдущем ответе, я переписал его, чтобы улучшить удобство использования. Сохраните его как модуль powershell (.psm1) в папку системного профиля ($PsHome\Profile.ps1).

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

пример:

Powershell -ExecutionPolicy Bypass -NoLogo -NonInteractive -Command "& {nap -PowerState Hibernate}"

function Suspend_Computer {
<#
.Synopsis
    Sets the computer to a specified power mode.
.Description
    The computer will be placed either in sleep or hibernation modes.
.Example
    C:\PS>Suspend_Computer
    Description
    -----------
    The command will run using default parameters which are not force the action of Suspend.
.Example
    C:\PS>Suspend_Computer -Force $True -PowerState Hibernate
    Description
    -----------
    The computer will save all data to disk and hibernate.
.Link
    /q/how-to-script-the-windows-7-sleep-command-63350/"Suspend","Hibernate")]
[string]$PowerState = 'Suspend'
)
    Add-Type -AssemblyName System.Windows.Forms
    $PowerState = [System.Windows.Forms.PowerState]::$PowerState;
    [System.Windows.Forms.Application]::SetSuspendState($PowerState, $Force, $DisableWake);
}

new-alias -name nap -value Suspend_Computer
1
отвечен Jessie 2023-05-03 21:49

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх