Using the Schtasks.exe command-line tool, I have scripted SchTasksFix.bat, to reset the password on all Scheduled Tasks on a local or remote computer.

NOTE: See Windows XP contains a full featured command-line scheduler.

NOTE: See How do I use Schtasks.exe to schedule tasks in Windows Server 2003?

NOTE: See Can I use the Windows XP command line scheduler in Windows 2000?

The syntax for using SchTasksFix.bat is:

SchTasksFix UserPwdFile \[ComputerName\]


<b>UserPwdFile</b>   contains every possible user name that you may have used in the <b>Run as</b> box,
              with its'  associated password, using the following formats:<b>


              <b>NOTE:</b> No quote (<b>"</b>) marks are required, or allowed.

<b>CompterName</b>   is an optional <b>NetBIOS</b> name of a remote computer.
SchTasksFix.bat sets ERRORLEVEL as follows:

0 - No errors were encountered.

1 - Improper syntax, no parameters specified.

2 - UserPwdFile NOT found.

3 - ComputerName NOT reachable.

4 - One or more Scheduled Tasks Run as a UserName not specified in the UserPwdFile file.

SchTasksFix.bat contains:

@echo off
if \{%1\}<h1><a name="_echo_Syntax_SchtasksFix_UserPwdFile_ComputerName_amp_exit_b_1_if_not_exist_1_echo_UserPwdFile_1_NOT_found_SchtasksFix_UserPwdFile_ComputerName_amp_exit_b_2_setlocal_set_ec_0_set_file_1_set_computer_computername_if_not_2_">\{\} @echo Syntax: SchtasksFix UserPwdFile \[ComputerName\]&exit /b 1
if not exist %1 @echo UserPwdFile %1 NOT found. SchtasksFix UserPwdFile \[ComputerName\]&exit /b 2
set ec=0
set file=%1
set computer=%computername%
if not \{%2\}</a></h1>\{\} set computer=%2
set computer=%computer:\=%
set work="\\%computer:"=%\c$"
if not exist %work% @echo Computer %computer% NOT found. SchtasksFix UserPwdFile \[ComputerName\]&exit /b 3
for /f "Tokens=*" %%t in ('Schtasks.exe /query /S %computer% /V /FO LIST') do set taskline=%%t&call :change
endlocal&exit /b %ec%
if /i "%taskline:~0,9%" EQU "TaskName:" set task=%taskline:~38%
if /i "%taskline:~0,12%" NEQ "Run As User:" goto :EOF
set User=%taskline:~38%
set pwd=
for /f "Tokens=1* Delims==" %%p in ('findstr /B /L /I /C:"%User%" %file%') do set pwd=%%q
if not defined pwd @echo %User% password not found in %file%&set ec=4&goto :EOF
schtasks.exe /change /S %computer% /tn "%task%" /RU "%User%" /RP "%pwd%"
If ERRORLEVEL 1 set ec=5&@echo Reset for task "%task%", User "%User%" failed.
NOTE: Schtasks.exe displays a console message for each Scheduled Task:

SUCCESS: The parameters of scheduled task "Task Name" have been changed.