1.7 Versioning and Capability Negotiation

There are four versions of the Task Scheduler Remoting Protocol that correspond to the ATSvc, SASec, and ITaskSchedulerService (for the last two) interfaces. The following table provides the task version number, as specified in section 3.2.1, for these interfaces:

Tasks created with ATSvc are v1.0, tasks created with SASec are v1.1, and tasks created with ITaskSchedulerService are v1.2 or v1.3. ATSvc, SASec, and ITaskSchedulerService support managing all five versions--v1.0, v1.1, v1.2, v1.3, and v1.4.

Interface

Task version

ATSvc

v1.0

SASec

v1.1

ITaskSchedulerService

v1.2

ITaskSchedulerService

v1.3

ITaskSchedulerService

V1.4

There is no explicit version or capability negotiation in the Task Scheduler Remoting Protocol. Instead, the availability of an RPC interface indicates support for that version of the protocol by the server.

Though versioning is mentioned in this specification as summarized here, it is not subject to negotiation. The ITaskSchedulerService interface has a method SchRpcHighestVersion (section 3.2.5.4.1) that returns the highest version in the format 0xMMMMmmmm, where 'M' stands for the major version hex digits and 'm' stands for the minor version hex digits. The only version numbers currently supported are 0x00010002 and 0x00010003, and no negotiation takes place. The .JOB file format contains a File Version field (see FIXDLEN_DATA (section 2.4.1)), but this field is always set to 0x0001, so it is not subject to negotiation. The XML schema contains a Version element (see section 2.5.1), but this element is for the use of the task itself and not related to Task Scheduler Remoting Protocol versioning.