Aix Posted June 24, 2022 Share Posted June 24, 2022 Hey I'd be glad to get some help with a TaskSheduler UDF from Water found at: I get COM errors when trying to restore a saved .xml file with folowing code: #include <TaskScheduler.au3> Global $sFolderName = "\Microsoft\Windows\DeviceDirectoryClient" Global $sTaskName = "HandleCommand" Global $sBackupXML = @DesktopDir & "\HandleCommand.xml" Global $oService = _TS_Open() Global $vResult = _TS_TaskExportXML($oService, $sFolderName&"\"&$sTaskName, $sBackupXML) Global $oTaskDefinition = _TS_TaskImportXML($oService, 1, $sBackupXML) Global $oTaskObject = _TS_TaskGet($oService, $sFolderName&'\'&$sTaskName) _TS_TaskUpdate($oService, $oTaskObject, $oTaskDefinition) If @error Then MsgBox($MB_ICONERROR, "Task Scheduler UDF", "Task Scheduler UDF | _TS_TaskUpdate"&@CRLF& "@error = " & @error & ", @extended = " & @extended & @CRLF & @CRLF & _TS_ErrorText(@error)) Else MsgBox($MB_ICONINFORMATION, "_TS_TaskImportXML", "Task '" & $sTaskName & "' successfully updated") EndIf _TS_Close($oService) I'd like to undestand why this code works fine for most tasks, but some produce COM Errors: COM Error Number: 80020009 Description: ScriptLine: 1948 (Error: 80020009) [failed] _TS_TaskUpdate Error 3304 for TargetTask:HandleCommand Description: _TS_TaskUpdate (3304): Error updating the Task. @extended is set to the COM error Can someone help me to get rid of it pls.? Link to comment Share on other sites More sharing options...
Aix Posted June 24, 2022 Author Share Posted June 24, 2022 Link to comment Share on other sites More sharing options...
water Posted June 25, 2022 Share Posted June 25, 2022 Please call _TS_ErrorNotify(2) at the top of your script. This way we get more detailed error information. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Aix Posted June 25, 2022 Author Share Posted June 25, 2022 @water Thank you for yor reply I added the line, here is the output: Link to comment Share on other sites More sharing options...
water Posted June 25, 2022 Share Posted June 25, 2022 Can you run your script as admin and post the result? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Aix Posted June 25, 2022 Author Share Posted June 25, 2022 @water I added the line #RequireAdmin, but the result didn't change: #RequireAdmin #include <TaskScheduler.au3> Global $sFolderName = "\Microsoft\Windows\DeviceDirectoryClient" Global $sTaskName = "IntegrityCheck" Global $sBackupXML = @DesktopDir & "\IntegrityCheck.xml" Global $oService = _TS_Open() _TS_ErrorNotify(2) _TS_TaskExportXML($oService, $sFolderName&"\"&$sTaskName, $sBackupXML) Global $oTaskObject = _TS_TaskGet($oService, $sFolderName&'\'&$sTaskName) Global $oTaskDefinition = _TS_TaskImportXML($oService, 1, $sBackupXML) _TS_TaskUpdate($oService, $oTaskObject, $oTaskDefinition) If @error Then Exit MsgBox($MB_ICONERROR, "Task Scheduler UDF", "Task Scheduler UDF | _TS_TaskUpdate"&@CRLF& "@error = " & @error & ", @extended = " & @extended & @CRLF & @CRLF & _TS_ErrorText(@error)) MsgBox($MB_ICONINFORMATION, "_TS_TaskImportXML", "Task '" & $sTaskName & "' successfully updated") _TS_Close($oService) That's the xml content written with _TS_TaskExportXML() for example task "\Microsoft\Windows\DeviceDirectoryClient\IntegrityCheck" <?xml version="1.0" encoding="UTF-16"?> <Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> <RegistrationInfo> <SecurityDescriptor>D:P(A;;FA;;;SY)(A;;FRFX;;;BA)</SecurityDescriptor> <URI>\Microsoft\Windows\DeviceDirectoryClient\IntegrityCheck</URI> </RegistrationInfo> <Principals> <Principal id="System"> <UserId>S-1-5-18</UserId> </Principal> </Principals> <Settings> <AllowHardTerminate>false</AllowHardTerminate> <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries> <ExecutionTimeLimit>PT0S</ExecutionTimeLimit> <Hidden>true</Hidden> <MultipleInstancesPolicy>Parallel</MultipleInstancesPolicy> <Priority>10</Priority> <RestartOnFailure> <Count>10</Count> <Interval>PT12H</Interval> </RestartOnFailure> <StartWhenAvailable>true</StartWhenAvailable> <IdleSettings> <StopOnIdleEnd>true</StopOnIdleEnd> <RestartOnIdle>false</RestartOnIdle> </IdleSettings> <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine> </Settings> <Triggers> <TimeTrigger> <StartBoundary>2015-01-01T12:00:00</StartBoundary> <Repetition> <Interval>P7D</Interval> </Repetition> </TimeTrigger> </Triggers> <Actions Context="System"> <ComHandler> <ClassId>{AE31B729-D5FD-401E-AF42-784074835AFE}</ClassId> <Data><![CDATA[-IntegrityCheck]]></Data> </ComHandler> </Actions> </Task> While trying to import this xml content via Microsoft TaskManager manually the progress fails with following message: "Task Scheduler service is not available. Task Scheduler will attemt to reconnect to it." But the service is definitively running... checked it twice.. Here is the the list of sheduled tasks this condition matches: \Microsoft\Windows\Device Setup\Metadata Refresh \Microsoft\Windows\DeviceDirectoryClient\HandleCommand \Microsoft\Windows\DeviceDirectoryClient\HandleWnsCommand \Microsoft\Windows\DeviceDirectoryClient\IntegrityCheck \Microsoft\Windows\DeviceDirectoryClient\LocateCommandUserSession \Microsoft\Windows\DeviceDirectoryClient\RegisterDeviceAccountChange \Microsoft\Windows\DeviceDirectoryClient\RegisterDeviceConnectedToNetwork \Microsoft\Windows\DeviceDirectoryClient\RegisterDeviceLocationRightsChange \Microsoft\Windows\DeviceDirectoryClient\RegisterDevicePeriodic1 \Microsoft\Windows\DeviceDirectoryClient\RegisterDevicePeriodic24 \Microsoft\Windows\DeviceDirectoryClient\RegisterDevicePeriodic6 \Microsoft\Windows\DeviceDirectoryClient\RegisterDevicePolicyChange \Microsoft\Windows\DeviceDirectoryClient\RegisterDeviceScreenOnOff \Microsoft\Windows\DeviceDirectoryClient\RegisterDeviceSettingChange \Microsoft\Windows\DeviceDirectoryClient\RegisterUserDevice \Microsoft\Windows\EDP\EDP App Launch Task \Microsoft\Windows\EDP\EDP Auth Task \Microsoft\Windows\SettingSync\BackgroundUploadTask \Microsoft\Windows\Shell\FamilySafetyMonitorToastTask The code works perfectly fine fine for all other tasks.. Link to comment Share on other sites More sharing options...
water Posted June 26, 2022 Share Posted June 26, 2022 I suggest to stop the task before updating/make sure the task is stopped check @error and @extended after each call of a _TS_* function add the password to the task definition as the password does not get exported Can you please explain why you need to update a Microsoft task? I do not see any statement modifying the task. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
water Posted June 26, 2022 Share Posted June 26, 2022 Maybe this site helps: https://thegeekpage.com/fix-error-task-scheduler-service-is-not-available-in-windows-10-solved/ My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Aix Posted July 7, 2022 Author Share Posted July 7, 2022 @water Hello water Thanx a lot for your reply. Now I had time to find a solution, but, nothing really worked. First of all: On 6/26/2022 at 9:03 AM, water said: Can you please explain why you need to update a Microsoft task? I do not see any statement modifying the task. Yes I can! I wanted to have a full backup of all sheduled tasks before starting to make changes, but the restore didn't work for 19 of 155 tasks. That's why I started this thread. On 6/26/2022 at 9:03 AM, water said: check @error and @extended after each call of a _TS_* function I added the @error check, but indeed, _TS_TaskUpdate () and _TS_TaskRegister () produced the COM Errors. Next, On 6/26/2022 at 9:03 AM, water said: stop the task before updating/make sure the task is stopped All tasks were stopped (or deactivated), when _TS_TaskUpdate () was called. No changes. Next I have manually deleted a task using the Windows TaskSheduler dialogue \Microsoft\Windows\DeviceDirectoryClient\HandleCommand and tried to re-register it, but the result was, that _TS_TaskRegister () failed... Now I will try the advice from your link On 6/26/2022 at 10:23 AM, water said: Maybe this site helps: https://thegeekpage.com/fix-error-task-scheduler-service-is-not-available-in-windows-10-solved/ .. that will take some time. Have a good time! Link to comment Share on other sites More sharing options...
water Posted July 7, 2022 Share Posted July 7, 2022 Thanks for the info and good luck! My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Aix Posted July 27, 2022 Author Share Posted July 27, 2022 @water So, after my holiday 😎 I tried the advices from the link you sent, On 6/26/2022 at 10:23 AM, water said: Maybe this site helps: https://thegeekpage.com/fix-error-task-scheduler-service-is-not-available-in-windows-10-solved/ without success. Then I made some changes in the exported xml files, replaced sections with configs from working exports and found out, that the issue has to do with the triggers. Giving up.. Seems it is not possible to perform a full backup of the TaskSheduler this way. Thank you for your help 👍 Link to comment Share on other sites More sharing options...
water Posted July 27, 2022 Share Posted July 27, 2022 Last question: On 6/26/2022 at 9:03 AM, water said: add the password to the task definition as the password does not get exported Did you add the password to the Task Definition before creating the task? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Aix Posted July 27, 2022 Author Share Posted July 27, 2022 @water 2 hours ago, water said: Last question: Did you add the password to the Task Definition before creating the task? Oh, I forgot to tell about that point.. Fist of all, I did not, because some of the Tasks were created by other users (eg. SYSTEM). With the attempt to generate a full (original, unchanged) backup of the Tasks configuration that would bring me to a workaround instead of a solution. I've one last question, too While playing around with _TS_TaskPropertiesSet() ["Task|Enabled|False"] on SYSTEM tasks properties I found out, that @error is not set, when $oSettings.Enabled = $aTemp[2] fails because of access denials. The ObjectError is set properly, but the line >> If @error Then << doesn't work.. So I added: If @error Then Return SetError (2005) behind the "EndSwitch" (line 1785). Is there a better solution then mine? Link to comment Share on other sites More sharing options...
water Posted July 27, 2022 Share Posted July 27, 2022 Good point! I will add the following line to the UDF: If @error Then Return SetError(2005, @extended, $i * -1) This means: Error setting a property. @extended is set to the COM error and the Returnvalue holds the negative index of the property in error ($aProperties) What do you think? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Aix Posted July 28, 2022 Author Share Posted July 28, 2022 @water Nice! 😎 Link to comment Share on other sites More sharing options...
water Posted July 28, 2022 Share Posted July 28, 2022 Just released version 1.6.0.1 mLipok, argumentum and Aix 1 2 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now