Good Morning AskPerf! Today we’re going to wrap up our series on Task Scheduler Changes in Windows Vista and Windows Server 2008. If you haven’t read my previous posts on Task Scheduler, I highly recommend reading those first. The two posts are:
- Task Scheduler Changes in Windows Vista and Windows Server 2008 – Part One
- Task Scheduler Changes in Windows Vista and Windows Server 2008 – Part Two
We discussed several of the architectural pieces and new features in these posts including:
- Support for a security isolation model in which each set of tasks running in a specific security context runs in a separate session
- Option to retry tasks in case of failure
- Trigger task based on any event captured in the event log
So what does the whole picture look like? Below is the diagram that is published in the Windows Vista Resource Kit:
As we can see, the shared SVCHOST.EXE process is the primary component here. The process loads the Task Scheduler Service DLL (SCHEDSVC.DLL) using a Local System account, and then uses TASKSCHD.DLL to interface with the Resource Manager. CredMan and S4U are used to acquire the credentials. Configuration information is gleaned from the registry, Job tasks are written to the disk in XML format.
The Transient Control Process that is listed in the diagram is TASKENG.EXE. TASKENG.EXE is the engine that runs in the task-defined user context and logs the event log messages. It also generates the various processes that execute the actions defined in the task.
For tasks created in previous versions of Windows, there is a specific DLL (TASKCOMP.DLL) that provides backwards compatibility for the task management and execution.
With that, we’ve reached the end of our three-part series on Task Scheduler. Hopefully this information helps you understand some of the different features and capabilities. Take care!