Extensive library to control and manipulate Microsoft Task Scheduler Service.
Please check this site for the implementation status! Please check the History.txt file in the archive for the changelog. Please check the WIKI for details about how to use the UDF.
BTW: If you like this UDF please click the "I like this" button. This tells me where to next put my development effort
KNOWN BUGS (last changed: 2019-12-03)
_TS_TaskUpdate: Always returns @error = 3302. Please replace Fixed with version 126.96.36.199 If Not IsObj($oTask) Or ObjName($oService) <> "IRegisteredTask" Then Return SetError(3302, 0, 0) with
If Not IsObj($oTask) Or ObjName($oTask) <> "IRegisteredTask" Then Return SetError(3302, 0, 0)
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.