This scripts automates the password change for scheduled task run with a certain user.
#** #** Script: CPW-ScheduledTask.ps1 #** Version: 1.0 #** Created: 30/08/2019 08:09AM #** Author: Adriaan Westra #** Website: http://www.westphil.nl #** #** Purpose / Comments: #** Change pasword for an account on multiple scheduled taska on Multiple #** Machines. #** #** Changelog : ** 30/12/2015 08:09AM : Initial version #** #** #** account to check for $UserAcct='.\administrator' #** New password $UserPass= 'SuperSecret' #** Array of computers to change the scheduled tasks on $aComputers = @('PC1','Pc2','PC3') #** Loop throug the collection of Computers ForEach ( $sComputer in $aComputers) { #** Handle unexpected errors Try { #** Test if computer is responding over the network If (test-connection -computername $sComputer -count 1 -quiet) { #** Create com object for Schedule Service $ScheduleObject=new-object -ComObject Schedule.Service #** Connect to the task scheduler on the remote PC $ScheduleObject.Connect($sComputer) #** Connect to the root folder of the task scheduler $taskFolder = $ScheduleObject.GetFolder('\') #** Display current PC Write-host "Processing Scheduled tasks on : " $sComputer -ForegroundColor Green #** loop through the tasks in the task scheduler foreach ($task in $taskFolder.GetTasks(0)) { #** Get the task properties in XML format $xml = [xml] $task.xml #** Check if the user account for the scheduled task is the account we're looking for. If ($xml.ChildNodes[1].Principals.Principal.UserId -eq $UserAcct ) { #** Display the task name Write-host "Changing password on : " $task.name #** Change the password for the task $task = $taskFolder.RegisterTaskDefinition($task.Name, $task.Definition, 6, $UserAcct, $UserPass, 1) } } } Else { #** computer is not responding over the network Write-host $sComputer "is not responding" -ForegroundColor Red } } #** Handle unexpected errors and display the error Catch { $ErrorMessage = $_.Exception.Message $innerException = $Error Write-host (Get-Date -UFormat "%Y-%m-%d %T") " ===> Error : " $ErrorMessage " | " $innerException -ForegroundColor Red } } exit