Site Map
.:Advanced Task Scheduler
About product
Download trial
Purchase license
Compare editions
View screenshot
FAQ & Support
Press Kit
Online manual
Blog posts
More articles...
.:Follow us
Follow us on Facebook Follow us on Twitter Follow us on YouTube

Task scheduler

Terminal Server Aware Task Scheduler

There are explanations of Terminal Server features spread over the user manual, but to make it easy for the users who need Terminal Server features we’ll explain how Advanced Task Scheduler works from the Terminal Server’s point of view in this post.

Terminal Sessions are supported in Network edition and in All Users tab in Basic and Professional editions. A scheduled task may run on the active terminal session, or a separate instance of a task will run on each session. It’s not exactly each session; they may be filtered by user name, so the task will run only on sessions, whose user is on the list. Normally, task runs under the same credentials as Terminal Session’s user, “Active user” is the default option, however, you can set up it to run under different credentials.

Let’s consider and example where you are running a Terminal Server and wish to run a program on each session at the specified time. You create a task with appropriate schedule type, set the “Run this task for each logged on and valid user” option on the “User Account Options” tab of the Task Properties window, then the task will run on each Terminal Session at the specified time. A valid user means that the system and inactive terminal sessions are ignored.

Should you wish to run your task for only the sessions where the specific user is logged on, set the “Start this task only if one of the following users is logged on and active” and fill the list of user names.

In Advanced Task Scheduler 4.1 we extended the number of statements that you may use in your task. These statements include checking if a specified file exists or locked and checking user’s idle time. All these checks are performed taking into account the session/user under which the task is being executed.

In conclusion, we encourage you to try Advanced Task Scheduler as a solution to run scheduled tasks on a Terminal Server.

User Account Options

Domain Controller Aware Task Scheduler

In this post we’ll discuss running scheduled tasks in a Domain Controller environment. Advanced Task Scheduler can be installed on a Domain Controller, Active Directory, domain or member.

The tasks on the current user’s tab run mostly the same everywhere, however, “All Users” tasks may seem more complicated, so we’ll focus on them here. Advanced Task Scheduler Service needs to be installed to run “All Users” tasks. The service may run under the system account, or under an administrator account. You may wish to run the service as an administrator if your tasks require network resources, or you want to store log file on a remote machine (see questions 11 and 12 in the FAQ).

You should change service account in Administrative Tools:

  • Open Control Panel, double-click Administrative Tools, and then double-click Services.
  • Double click Advanced Task Scheduler Service and specify user account on the Log On tab of the Service Properties window.

Another point of interest is the user account under which you wish to run your task. You can change user account for any task on the “User Account Options” tab of the Task Properties window. A task can run as:

  • “Active user” – the user who is logged on and active at the moment when the task is being started.
  • “Service user” – account of Advanced Task Scheduler Service (system account or an administrator account configured as described above).
  • “Specified user” – an alternative user account for the task. You may wish to specify an alternative user account for a task if you execute an external application and that application was installed and configured for that user.

Finally, if you wish to run your task on the hidden desktop, or to use “Specified user” on the “User Account Options” tab of the Task Properties window, then you may need to enable some additional privileges for the user under which the Advanced Task Scheduler Service is running. If your task does not start due to insufficient privileges, the required privileges will be listed in the “Execution Log” tab of the Task Properties window. In general, these privileges are:

  • “Act as part of the operating system” (SeTcbPrivilege),
  • “Replace a process-level token” (SeAssignPrimaryTokenPrivilege),
  • “Adjust memory quotas for a process” (SeIncreaseQuotaPrivilege, may be named “Increase memory quotas” or “Increate quotas” in Windows 2000 and NT 4.0),
  • “Bypass traversy checking” (SeChangeNotifyPrivilege),
  • and “Debug programs” (SeDebugPrivilege).

You should enable them in Domain Controller Security Policy:

  • Open Control Panel, double-click Administrative Tools, and then double-click Domain Controller Security Policy.
  • In the console tree, click User Rights Assignment in the GroupPolicyObjectName [DomainControllerName] Policy/Computer Configuration/Windows Settings/Security Settings/Local Policies/User Rights Assignment
  • Select the required privilege and click Add User or Group.

In conclusion, if you need a “Domain Controller Aware” task scheduler, please feel free to download and try Advanced Task Scheduler.

User Account Options

OpenSSL Heartbleed

As reported by the OpenSSL Project, OpenSSL is vulnerable to TLS heartbeat read overrun (CVE-2014-0160). OpenSSL versions 1.0.1 through 1.0.1f contain a flaw in its implementation of the TLS/DTLS (transport layer security protocols) heartbeat functionality.

The 3.2 Build 606 – 3.3 Build 608 versions of Advanced Task Scheduler did include the OpenSSL library that contained the OpenSSL Heartbleed vulnerability found in the OpenSSL 1.0.1 library.

Updated version (3.3 Build 609) of Advanced Task Scheduler was released on September 15, 2014. This version (and later versions) contain a permanent fix for the Heartbleed vulnerability.

Advanced Task Scheduler vs. Windows Task Scheduler

Windows Task Scheduler is a simple task scheduler, built into Windows. It provides the ability to schedule the launch of programs or scripts at pre-defined times or after specified time intervals. By contrast, Advanced Task Scheduler is vastly more powerful and versatile than the Windows Task Scheduler. It includes many build-in actions, provides more scheduling options and flexible schedule types. The table below compares features of Advanced Task Scheduler and Windows Task Scheduler.

Comparison chart

Feature Windows Task Scheduler 1.0 Windows Task Scheduler 2.0 Advanced Task Scheduler 4.3 Advanced Task Scheduler Professional 4.3 Advanced Task Scheduler Network 4.3
Support of Windows 2000, XP, Server 2003 Yes   Yes Yes Yes
Support of Windows Vista, Server 2008, 7, Server 2012, 8   Yes Yes Yes Yes
Graphical User Interface Yes Yes Yes Yes Yes
Error handling Yes Yes Yes Yes Yes
Unlimited number of actions per task       Yes Yes
Wake computer to run task   Yes   Yes Yes
Schedule hidden tasks when no logged on users     Yes Yes Yes
Shortcut types
Control statements       Yes Yes
Execute application Yes Yes Yes Yes Yes
Display message   Yes Yes Yes Yes
Send e-mail message   Yes Yes Yes Yes
Send network message     Yes Yes Yes
Play sound     Yes Yes Yes
Start/stop/pause/continue a service     Yes Yes Yes
Kill process     Yes Yes Yes
Destroy window     Yes Yes Yes
Establish Dial-Up connection     Yes Yes Yes
Hangup Dial-Up connection     Yes Yes Yes
Turn off/reboot/log off computer     Yes Yes Yes
Send key sequence     Yes Yes Yes
HTTP/HTTPS download     Yes Yes Yes
FTP/FTPS/SFTP upload/download/delete     Yes Yes Yes
Copy/move/delete files     Yes Yes Yes
Zip/Unzip archive     Yes Yes Yes
Internal portable Perl and Python interpreters     Yes Yes Yes
Internet Explorer Automation       Yes Yes
ODBC SQL       Yes Yes
Schedule types
Complex schedule types       Yes Yes
Run once Yes Yes Yes Yes Yes
Run secondly     Yes Yes Yes
Run minutely     Yes Yes Yes
Run hourly     Yes Yes Yes
Run daily Yes Yes Yes Yes Yes
Run weekly Yes Yes Yes Yes Yes
Run monthly Yes Yes Yes Yes Yes
Run yearly     Yes Yes Yes
Run on startup Yes Yes Yes Yes Yes
Hot Key     Yes Yes Yes
Computer idle   Yes Yes Yes Yes
Computer ceases idle     Yes Yes Yes
Internet connection     Yes Yes Yes
Logon watch   Yes   Yes Yes
Window watch       Yes Yes
Process watch       Yes Yes
File watch       Yes Yes
Run on holiday       Yes Yes
Randomized time       Yes Yes
Client/Server features
Client and server on different computers         Yes
Connect server via TCP/IP protocol         Yes
Connect server by secure SSL connection         Yes
Unlimited clients can connect to one server         Yes
Can be used in remote environments         Yes

From the table above you can find that Advanced Task Scheduler greatly extends features of Windows Task Scheduler. At the same time, Advanced Task Scheduler does not depend on Windows Task Scheduler, and provides its own scheduling engine, which makes Advanced Task Scheduler suitable to handle complex environments.

Error handling in scheduled tasks

A scheduled task can be run automatically many times after it has been created, configured and tested. But what if something goes wrong, for example, the task depends on a file that has been renamed or moved, Internet connection interrupts when the task is being executed? The administrator may want to know about the problem. That is why Advanced Task Scheduler introduces error handling features, which allow taking actions when something wrong happens.

Logging and log files

During execution, Advanced Task Scheduler records task execution messages in a log file or sends them to an email address. Logging options can be configured in the Options section on the user’s tab of the Preferences window.

To enable logging and specify log file name: check the “Write Log File” option, in the text box next to this option enter file name of the file where you wish to record log entries. You can check the “Split Log File” option and specify maximum size for a single log file. When size of your log file reaches maximum, Advanced Task Scheduler will create new log file by adding or increasing index number in its file name.

To enable sending logs to email address: check the “Send Logs to EMail” option and specify email address and SMTP options. In Advanced Task Scheduler Professional and Network editions you can send every log message as a separate email or send a bunch of log messages in a single email once a day, week or month.

To log failed tasks only: check the “Log failed tasks only” option. This option is good for error handling. Advanced Task Scheduler will record or email log entries for failed tasks only.

Logging and log files


In addition to error logging Advanced Task Scheduler Professional and Network editions provide more powerful error handling feature – conditions. Conditions allow executing one sequence of commands or another depending on the condition. Advanced Task Scheduler allows conditions based on error code or exit code of the program started. Error code is a code that Operating System reports when it starts the program. For example, if the program’s executable file does not exist, you’ll receive either 2 (File not found) or 3 (Path not found) error code. Error code “0” means that the program has been started successfully. Every program on Windows returns its exit code (integer value) when it finishes to execute. In general, exit code is the result of the operation that the program has been performed.

Thus, you can check last error code or last exit code of the program you started and perform different operations in case of success or failure. The example below demonstrates a task that displays message box when program fails to start. In real life, you can send an email message or use any other commands to notify yourself about the error or perform other error handling operations.

LastErrorCode conditions in Advanced Task Scheduler Professional

The example below, demonstrates how to check last exit code. The task will display a message asking user to click either “Yes” or “No” button. And will respond user by displaying different messages depending on what button has been clicked.

LastExitCode conditions in Advanced Task Scheduler Professional

Advanced error handling

If you are familiar with Perl or Python programming language, you can use the power or those programming languages by writing scripts that handling more complex conditions and operations. As Advanced Task Scheduler comes with internal portable Perl and Python interpreters, you can schedule scripts that will run from Advanced Task Scheduler on any system where Advanced Task Scheduler is installed, no need to install interpreters separately.

About us   Privacy policy   Terms of use   Link to us
Current Version:
The following prices are based on a single order:
Basic Edition 32 and 64-bit$ 39.95 USD
Professional Edition 32 and 64-bit$ 59.95 USD
Network Edition 32 and 64-bit$ 149.95 USD

I had the pleasure of purchasing Advanced Task Scheduler, an incredibly versatile, advanced windows task scheduler. This program has taken the Windows Task Scheduler to a new level. The customer service is superb. I needed a specific modification to the program, and they accommodated it by sending me a patch. I HIGHLY recommend this product.

Dr. Jay Stockman

Computer: Minimum required by operating system you are running.
Disk Space: Under 30 MB
Operating System: Microsoft Windows 32-bit or 64-bit.