..png)
이 가이드에 따라 잠자기 및 깨우기에 대한 2가지 작업을 만들었습니다.https://www.groovypost.com/howto/schedule-wake-sleep-windows-automatically/
절전 작업을 독립적으로 실행하면 PC가 절전 모드로 전환되고 마우스 이동 이벤트로 깨어납니다.
깨우기 작업을 예약하고 PC를 절전 키보드 버튼으로 설정하면 예약 작업에 따라 깨어납니다.
따라서 작업은 독립적으로 훌륭하게 작동하지만 작업 이벤트 체인에서는 작동하지 않습니다.
내가 시도한 것:
- 최대 절전 모드 비활성화
powercfg -h off
- 설정 -> 전원 옵션에서 깨우기 타이머 허용(활성화로 설정)
- 이벤트 타이머 및 깨우기와 관련된 BIOS의 모든 항목을 활성화했습니다.
- 잠자기 작업과 깨우기 작업 사이에 5분 이상 일시 중지를 사용했습니다.
- 무당은 탬버린을 들고 춤을 춘다
추가 스크린샷:
다운로드 가능한 소프트웨어는 옵션이 아닙니다. PC와 노트북에서도 동일한 동작이 발생합니다. 현재까지 2일째 고군분투가 계속되고 있습니다..
답변1
$script = '$signature = @"
[DllImport("powrprof.dll")]
public static extern bool SetSuspendState(bool Hibernate,bool ForceCritical,bool DisableWakeEvent);
"@
$func = Add-Type -memberDefinition $signature -namespace "Win32Functions" -name "SetSuspendStateFunction" -passThru
$func::SetSuspendState($false,$true,$false)'
$bytes = [System.Text.Encoding]::Unicode.GetBytes($script)
$encodedCommand = [Convert]::ToBase64String($bytes)
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-encodedCommand $encodedCommand"
$trigger = New-ScheduledTaskTrigger -Daily -DaysInterval 1 -At 16:43
Register-ScheduledTask -TaskName "Sleep" -Action $action -Trigger $trigger -Force
$action = New-ScheduledTaskAction -Execute "cmd.exe" -Argument "/c echo hello"
$settings = New-ScheduledTaskSettingsSet -WakeToRun
$trigger = New-ScheduledTaskTrigger -Daily -DaysInterval 1 -At 16:44
Register-ScheduledTask -TaskName "Wake" -Action $action -Settings $settings -Trigger $trigger -Force
매력처럼 작동합니다 :)
또한 RUNDLL32를 사용하지 마십시오.
Rundll32는 Rundll32에 의해 호출되도록 명시적으로 작성된 DLL에서만 함수를 호출할 수 있습니다.
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/rundll32#remarks