W7 Script works when run Manually but not in Task Scheduler waking from sleep mode

4 posts in this topic

snoopy.pa30 3

I have a Windows 7 machine that is running a series of AutoIT 3 scripts from a master script.

When run manually, the entire set of scripts runs fine. The scripts downloads data and do conversions and email results.

When run from task scheduler, the machine awakes and starts running the master script. The first script runs fine, but the second part fails. The first script is a simple call to an exe file that just runs. The second script calls another exe file, but requires a few mouse clicks to run. The further on scripts all run fine.

When letting the script run from task scheduler (after being put to sleep) , if I move the mouse (or press a key), the login screen comes up (Strange, as No Password is set, and when machine boots, it comes straight into desktop). If I click on the icon (no password) the scripts run fine.

I am sure there is a setting somewhere that I have to set differently in task scheduler, or there is something in a W7 setting I need to change.

My Task Scheduler quick tests are in the lines of:

Run only when user is logged on / Run whether user is logged on or not

Run with Highest Privileges / or Not

Configure for: (W7 / Vista / XP)

Getting lost in the combinations, so will have to do a methodical series of tests, but hoping someone here might have some experience or suggestions.

So, is it a Task Scheduler Setting (what combo) or a Windows 7 setting (what and where)?

Similar Content

My script is run by Task Scheduler at night. I want to leave a message for the user so he can see it the next day. For users who remained logged in it's easy to leave a message on the screen, but that's impossible when the user is logged off when my task is run (my scripts runs fine; but no messages are displayed. Is this due to something called "Session 0 Isolation"?)
Is there a sure-fire way to detect if the system is sitting at the logon screen when my script is run by Task Scheduler?
If my script knows it is running while the system is in this state it'll know what activities are impossible, like keyboard/mouse input, displaying messages, etc.
(note Task Scheduler employs the user's credentials to run my script so checking for @username is of no help.)

This script will get all Scheduled tasks as defined on a system
There are basically 3 functions in this small udf:
_TaskGetFolders() will return an array of all folders as from a given Scheduler Library folder, recursively. $aFolders will have to be declared before the function is called, I am not sure if there is a better method to avoid having to declare the array outside of _TaskGetFolders()...
_TaskListAllDetailed() will return a detailed array of all tasks in a given task folder, recursively. This function is using _TaskGetFolders() for the recurse option.
_TaskListToText() will create a formatted output of scheduled tasks as returned to the above array.
The script is complementary to taskplanerCOM.au3 by Allow2010.
The example shows
all folders in the Scheduler Library
All scheduled tasks in root (with formatted output)
All scheduled tasks on the system
Scheduled tasks Windows Defender if available
_TaskListAllDetailed.au3

I tried to start Skype via Task Scheduler, but when it started, it only ran in the background. Then I made an AutoIt script to open the Start menu, type the path to Skype and press Enter. That also didn't work. The Task Schedular claimed the process started, but I didn't see anything happening.

After doing some research, I found out that the problem was that I selected the checkbox in Task Scheduler to run the task even when I'm not logged in. When you do that, Task Scheduler runs the task in the background, so you can't see the started program.

I didn't see anyone mention this on the forum, so I thought I'd mention this here.