1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
|
# frozen_string_literal: true
# module PuppetX
module PuppetX; end
# module PuppetX::PuppetLabs
module PuppetX::PuppetLabs; end
# module PuppetX::PuppetLabs::ScheduledTask
module PuppetX::PuppetLabs::ScheduledTask; end
# module PuppetX::PuppetLabs::ScheduledTask::Error
module PuppetX::PuppetLabs::ScheduledTask::Error
# from C:\Program Files (x86)\Windows Kits\8.1\Include\shared\winerror.h
MAX_32_BIT_VALUE = 0xFFFFFFFF
# Returnes the signed value
def self.to_signed_value(hresult)
-(-hresult & MAX_32_BIT_VALUE)
end
# Checks if an error is a COM Error
def self.com_error_type?(win_32_ole_runtime_error, hresult)
# to_s(16) does not include 0x prefix
# assume actual hex for error is what message contains - i.e. 80070002
return true if win_32_ole_runtime_error.message.match?(%r{#{hresult.to_s(16)}})
# if not, look for 2s complement (negative value) - i.e. -2147024894
win_32_ole_runtime_error.message =~ %r{#{to_signed_value(hresult)}}m
end
# #define FACILITY_WIN32 7
# #define __HRESULT_FROM_WIN32(x) ((HRESULT)(x) <= 0 ? ((HRESULT)(x)) : ((HRESULT) (((x) & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000)))
# The system cannot find the file specified.
# WIN32 Error Code 2L (0x2)
ERROR_FILE_NOT_FOUND = 0x80070002 # -2147024894
# No mapping between account names and security IDs was done.
# WIN32 Error CODE 1332L (0x534)
ERROR_NONE_MAPPED = 0x80070534 # -2147023564
# The Task Scheduler service must be configured to run in the System account
# to function properly. Individual tasks may be configured to run in other accounts.
# Win32 Error Code 6200L (0xA28)
SCHED_E_SERVICE_NOT_LOCALSYSTEM = 0x80070A28 # -2147022296
# One or more arguments are invalid
E_INVALIDARG = 0x80070057 # -2147024809
# The task is ready to run at its next scheduled time.
SCHED_S_TASK_READY = 0x00041300
# The task is currently running.
SCHED_S_TASK_RUNNING = 0x00041301
# The task will not run at the scheduled times because it has been disabled.
SCHED_S_TASK_DISABLED = 0x00041302
# The task has not yet run.
SCHED_S_TASK_HAS_NOT_RUN = 0x00041303
# There are no more runs scheduled for this task.
SCHED_S_TASK_NO_MORE_RUNS = 0x00041304
# One or more of the properties that are needed to run this task on a
# schedule have not been set.
SCHED_S_TASK_NOT_SCHEDULED = 0x00041305
# The last run of the task was terminated by the user.
SCHED_S_TASK_TERMINATED = 0x00041306
# Either the task has no triggers or the existing triggers are disabled
# or not set.
SCHED_S_TASK_NO_VALID_TRIGGERS = 0x00041307
# Event triggers don't have set run times.
SCHED_S_EVENT_TRIGGER = 0x00041308
# Trigger not found.
SCHED_E_TRIGGER_NOT_FOUND = 0x80041309 # -2147216631
# One or more of the properties that are needed to run this task have
# not been set.
SCHED_E_TASK_NOT_READY = 0x8004130A # -2147216630
# There is no running instance of the task.
SCHED_E_TASK_NOT_RUNNING = 0x8004130B # -2147216629
# The Task Scheduler Service is not installed on this computer.
SCHED_E_SERVICE_NOT_INSTALLED = 0x8004130C # -2147216628
# The task object could not be opened.
SCHED_E_CANNOT_OPEN_TASK = 0x8004130D # -2147216627
# The object is either an invalid task object or is not a task object.
SCHED_E_INVALID_TASK = 0x8004130E # -2147216626
# No account information could be found in the Task Scheduler security
# database for the task indicated.
SCHED_E_ACCOUNT_INFORMATION_NOT_SET = 0x8004130F # -2147216625
# Unable to establish existence of the account specified.
SCHED_E_ACCOUNT_NAME_NOT_FOUND = 0x80041310 # -2147216624
# Corruption was detected in the Task Scheduler security database;
# the database has been reset.
SCHED_E_ACCOUNT_DBASE_CORRUPT = 0x80041311 # -2147216623
# Task Scheduler security services are available only on Windows NT.
SCHED_E_NO_SECURITY_SERVICES = 0x80041312 # -2147216622
# The task object version is either unsupported or invalid.
SCHED_E_UNKNOWN_OBJECT_VERSION = 0x80041313 # -2147216621
# The task has been configured with an unsupported combination of account
# settings and run time options.
SCHED_E_UNSUPPORTED_ACCOUNT_OPTION = 0x80041314 # -2147216620
# The Task Scheduler Service is not running.
SCHED_E_SERVICE_NOT_RUNNING = 0x80041315 # -2147216619
# The task XML contains an unexpected node.
SCHED_E_UNEXPECTEDNODE = 0x80041316 # -2147216618
# The task XML contains an element or attribute from an unexpected namespace.
SCHED_E_NAMESPACE = 0x80041317 # -2147216617
# The task XML contains a value which is incorrectly formatted or out of range.
SCHED_E_INVALIDVALUE = 0x80041318 # -2147216616
# The task XML is missing a required element or attribute.
SCHED_E_MISSINGNODE = 0x80041319 # -2147216615
# The task XML is malformed.
SCHED_E_MALFORMEDXML = 0x8004131A # -2147216614
# The task is registered, but not all specified triggers will start the
# task, check task scheduler event log for detailed information.
SCHED_S_SOME_TRIGGERS_FAILED = 0x0004131B
# The task is registered, but may fail to start. Batch logon privilege needs
# to be enabled for the task principal.
SCHED_S_BATCH_LOGON_PROBLEM = 0x0004131C
# The task XML contains too many nodes of the same type.
SCHED_E_TOO_MANY_NODES = 0x8004131D # -2147216611
# The task cannot be started after the trigger's end boundary.
SCHED_E_PAST_END_BOUNDARY = 0x8004131E # -2147216610
# An instance of this task is already running.
SCHED_E_ALREADY_RUNNING = 0x8004131F # -2147216609
# The task will not run because the user is not logged on.
SCHED_E_USER_NOT_LOGGED_ON = 0x80041320 # -2147216608
# The task image is corrupt or has been tampered with.
SCHED_E_INVALID_TASK_HASH = 0x80041321 # -2147216607
# The Task Scheduler service is not available.
SCHED_E_SERVICE_NOT_AVAILABLE = 0x80041322 # -2147216606
# The Task Scheduler service is too busy to handle your request.
# Please try again later.
SCHED_E_SERVICE_TOO_BUSY = 0x80041323 # -2147216605
# 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.
SCHED_E_TASK_ATTEMPTED = 0x80041324 # -2147216604
# The Task Scheduler service has asked the task to run.
SCHED_S_TASK_QUEUED = 0x00041325
# The task is disabled.
SCHED_E_TASK_DISABLED = 0x80041326 # -2147216602
# The task has properties that are not compatible with previous versions
# of Windows.
SCHED_E_TASK_NOT_V1_COMPAT = 0x80041327 # -2147216601
# The task settings do not allow the task to start on demand.
SCHED_E_START_ON_DEMAND = 0x80041328 # -2147216600
# The combination of properties that task is using is not compatible
# with the scheduling engine.
SCHED_E_TASK_NOT_UBPM_COMPAT = 0x80041329 # -2147216599
# The task definition uses a deprecated feature.
SCHED_E_DEPRECATED_FEATURE_USED = 0x80041330 # -2147216592
# The Event Log channel Microsoft-Windows-TaskScheduler must be enabled
# to perform this operation.
PLA_E_TASKSCHED_CHANNEL_NOT_ENABLED = 0x80300111 # -2144337647
end
|