Where can I find the Windows Task Scheduler exit codes list?
Asked Answered
C

4

10

All I have found about the Windows Task Scheduler results are short details about just a few codes.
Does anybody knows about a complete list?
For example, I have not been able to locate anything about the error code 0xFF.

EDIT:For example, if I add this task (for testing a command line program called "Notifu"):

schtasks /create /tn "NotifuTest" /tr "d:\Temporal\Notifu\notifu64.exe /m 'Test'" /sc minute /mo 1 /sd 10/10/2010 /ru "SYSTEM"

The same command has been verified working by command-line.
This is the result (sorry, my Windows is in spanish); note the 0xFF (the program seems to be executing, but with no results:

enter image description here

Cotenant answered 19/3, 2014 at 1:14 Comment(3)
Where do you see these error codes? Windows Task scheduler usually runs other things (batch scripts, command line programs etc.), and these are the things that will have documentation on result codes.Augean
Added extra info to original post, @ElectricLlama. Thanks.Cotenant
Yes, as mentioned below, notifu.exe has returned 0xFF (255) and windows scheduler is just echoing that. What does the notifu documentation say that means? If you can enable a log for notifu, you should do it and check the log.Augean
H
8

Process exit codes are process specific. By convention a value of zero indicates success. The only reserved value is STILL_ACTIVE which has value 259 (0x103). That is returned by GetExitCodeProcess when the process is still active. To understand what the values mean you will have to consult the documentation of the process in question.

Hudis answered 19/3, 2014 at 10:55 Comment(1)
While that convention is real, Task Scheduler does not consider most non-zero exit codes to be a failure. See here.Zaneta
C
11

You can find a list here: http://msdn.microsoft.com/en-gb/library/windows/desktop/aa383604(v=vs.85).aspx

However it is not complete as I have encountered this result for exemple: 0x7FFBD3FA

Carnatic answered 14/1, 2015 at 10:3 Comment(0)
H
8

Process exit codes are process specific. By convention a value of zero indicates success. The only reserved value is STILL_ACTIVE which has value 259 (0x103). That is returned by GetExitCodeProcess when the process is still active. To understand what the values mean you will have to consult the documentation of the process in question.

Hudis answered 19/3, 2014 at 10:55 Comment(1)
While that convention is real, Task Scheduler does not consider most non-zero exit codes to be a failure. See here.Zaneta
C
1

I used the list on Wikipedia to create this C# method for mapping Task Scheduler error codes to messages, for the lazy ones out there :-)

private static string? MessageFromTaskSchedulerErrorCode(uint errorCode)
{
    return errorCode switch
    {
        0x0 => "The operation completed successfully.",
        0x1 => "Incorrect function called or unknown function called.",
        0x2 => "File not found.",
        0xa => "The environment is incorrect.",
        0x00041300 => "Task is ready to run at its next scheduled time.",
        0x00041301 => "The task is currently running.",
        0x00041302 => "The task has been disabled.",
        0x00041303 => "The task has not yet run.",
        0x00041304 => "There are no more runs scheduled for this task.",
        0x00041305 => "One or more of the properties that are needed to run this task have not been set.",
        0x00041306 => "The last run of the task was terminated by the user.",
        0x00041307 => "Either the task has no triggers or the existing triggers are disabled or not set.",
        0x00041308 => "Event triggers do not have set run times.",
        0x80010002 => "Call was canceled by the message filter",
        0x80041309 => "A task's trigger is not found.",
        0x8004130A => "One or more of the properties required to run this task have not been set.",
        0x8004130B => "There is no running instance of the task.",
        0x8004130C => "The Task Scheduler service is not installed on this computer.",
        0x8004130D => "The task object could not be opened.",
        0x8004130E => "The object is either an invalid task object or is not a task object.",
        0x8004130F => "No account information could be found in the Task Scheduler security database for the task indicated.",
        0x80041310 => "Unable to establish existence of the account specified.",
        0x80041311 => "Corruption was detected in the Task Scheduler security database",
        0x80041312 => "Task Scheduler security services are available only on Windows NT.",
        0x80041313 => "The task object version is either unsupported or invalid.",
        0x80041314 => "The task has been configured with an unsupported combination of account settings and run time options.",
        0x80041315 => "The Task Scheduler Service is not running.",
        0x80041316 => "The task XML contains an unexpected node.",
        0x80041317 => "The task XML contains an element or attribute from an unexpected namespace.",
        0x80041318 => "The task XML contains a value which is incorrectly formatted or out of range.",
        0x80041319 => "The task XML is missing a required element or attribute.",
        0x8004131A => "The task XML is malformed.",
        0x0004131B => "The task is registered, but not all specified triggers will start the task.",
        0x0004131C => "The task is registered, but may fail to start.Batch logon privilege needs to be enabled for the task principal.",
        0x8004131D => "The task XML contains too many nodes of the same type.",
        0x8004131E => "The task cannot be started after the trigger end boundary.",
        0x8004131F => "An instance of this task is already running.",
        0x80041320 => "The task will not run because the user is not logged on.",
        0x80041321 => "The task image is corrupt or has been tampered with.",
        0x80041322 => "The Task Scheduler service is not available.",
        0x80041323 => "The Task Scheduler service is too busy to handle your request. Please try again later.",
        0x80041324 => "The Task Scheduler service attempted to run the task, but the task did not run due to one of the constraints in the task definition.",
        0x00041325 => "The Task Scheduler service has asked the task to run.",
        0x80041326 => "The task is disabled.",
        0x80041327 => "The task has properties that are not compatible with earlier versions of Windows.",
        0x80041328 => "The task settings do not allow the task to start on demand.",
        0xC000013A => "The application terminated as a result of a CTRL+C.",
        0xC0000142 => "The application failed to initialize properly.",
        _ => null
    };
}

Some people have seen errors that didn't appear in MSDN documentation. I don't know if it's just the app that they were running (because you can get return codes from that as well, assuming it actually ran) but there's not much else I can do.

One could in addition also use Marshal.GetExceptionForHR to get possible HResult exceptions mapped to friendly messages, but other than that I don't know what else to do.

Cero answered 26/4, 2022 at 14:48 Comment(0)
I
0

As was mentioned above, the exit codes reported by Task Scheduler depend on the program you invoke in the job.

Specifically for CMD.EXE (used when you run a .CMD or .BAT file), exit 0xFF means syntax error in the batch file.

CMD.EXE in Windows has been a Microsoft product for 25+ years and there is still no documentation of its exit codes. That's unprofessional.

Izaguirre answered 27/1, 2016 at 16:29 Comment(1)
I don't know that CMD.EXE has it's own set of error codes. I'm pretty sure it's just forwarding you the error codes output by the application you ran or from the operating system itself. The Windows system error codes are very thoroughly documented on MSDN: msdn.microsoft.com/en-us/library/windows/desktop/…Hirsch

© 2022 - 2024 — McMap. All rights reserved.