Task Scheduler - Put Computer into Standby Mode

Scheduling Sleep Mode via the Task Scheduler

   Information
This tutorial shows you how to schedule your computer to go into Sleep Mode via Task Scheduler. It uses a combination of the program PSShutdown and VBScirpt. The advantages of using this instead of the Power Policy is that it can place logged off computers to sleep as well.


PsShutdown.exe

Download PsShutdown.exe. Now place it in the %windows% folder, or if you place it somewhere else, note that location so that you can change it in the script below.

Scheduling the Task

Here's an example of a task set to run every hour. If the user you're attempting to use this through doesn't have privileges, then you can use this as a group policy log on script.

To explore scheduling tasks options, type "schtasks.exe /?" without quotes in a command prompt. Use the client computer if scheduling through a group policy.

Code:
SCHTASKS.exe /Create /S %computername% /RU "SYSTEM" /ST 00:00:00 /SC HOURLY /SD 01/01/2007 /TN "StandBy" /TR "cscript.exe C:\ValidPath\standby-hibernate.vbs

The Script

This script relies on the fact that PsShutdown.exe is placed in the %windows% folder. The location of the program can be changed to anywhere as long as PsShutdown.exe exists there and the system account has access rights. If you do change the directory, find the following line in the script below and change %windir%\psshutdown.exe to reflect the new location.
objShell.run "%windir%\psshutdown.exe -d -accepteula",
Code:
'** Script Name: "standby-hibernate.vbs" **
Option Explicit
On Error Resume Next
Dim strComputer, sUserName, bLoggedOn, bReboot, objWMIService, 
    colComputer, objComputer
Dim bStandby, objShell
strComputer = "."
 
Set objShell = WScript.CreateObject("Wscript.Shell")
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer 
    & "\root\cimv2") 
Set colComputer = objWMIService.ExecQuery _
    ("Select * from Win32_ComputerSystem")
 
For Each objComputer in colComputer
    sUserName = objComputer.UserName
    'WScript.Echo "UserName:  " & objComputer.UserName
     If sUserName  <> "null" Then
         bLoggedOn = True
     End If
Next
 
If Err = 0 Then
    If bLoggedOn Then
        WScript.Echo strComputer & " 
            is not Logged Off."
        bStandby = False
    Else
        WScript.Echo strComputer & " 
            is Logged Off."
        bStandby = True
    End If
Else
    WScript.Echo "Error accessing computer:  " 
        & strComputer
    bStandby = False
End If    
On Error Goto 0
 
WScript.Echo "bStandby:  " & bStandby
 
If bStandby = True Then
    WScript.Echo "Going into standby..."
    'Go to standby
    objShell.run "%windir%\psshutdown.exe -d -accepteula", 
        0, False
Else
    WScript.Echo "Not going into standby..."
End If

Scripts from the Energy Star website.




 
Last edited by a moderator:
Windows 7 Task Scheduler sleep command.

Well, I figured it out. To put a Windows 7 computer to sleep at a specified time using the Task Scheduler is a two step process.

First, you must disable the hibernation function. This can be accomplished with Admin rights on the CMD screen. See tutorial below:

http://www.sevenforums.com/tutorials/819-hibernate-enable-disable.htmlhttp://www.sevenforums.com/tutorials/819-hibernate-enable-disable.html

Second, you need to use the following command in the Windows Task Scheduler:

Rundll32.exe Powrprof.dll,SetSuspendState Sleep

That is it!
 

My Computer

OS
windows 7 ultimate
Beautiful!

Thanks Robert, your suggestion is exactly what I was looking for and follows my cardinal rule of KISS. I now have one task that wakes my computer to run a program for 3 hours and then a task to put it back into standby when the three hours is up. Perfect. Oh, this works on a Vista machine and probably will work on XP also.
 

My Computer

OS
XP, Vista
Easy way to sleep:
Code:
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
 
Last edited by a moderator:

My Computer

OS
windows7 ultimate x32
CPU
DualCore Intel Core 2 Duo E8400, 3000 MHz (9 x 333)
Motherboard
ASRock 4Core1333-GLAN (3 PCI,1 PCI-E x16,4 DDR2 DIMM...)
Memory
4Gb (1x4 DDR2-800 DDR2 SDRAM)
Graphics Card(s)
NVIDIA GeForce 9600 GT (512 mb)
Sound Card
onboard
Monitor(s) Displays
lg flatron w2242t
Screen Resolution
1680 x 1050
Hard Drives
WDC WD5000AAJS-00YFA0 ATA Device
PSU
-
Case
-
Cooling
-
Other Info
d-link dir100
Back
Top