OK... so at work we've got a lot of computers, and not a lot of bandwidth. I've been doing various forms of this, but this is the first time that I've felt that it is publicly distributable. This is meant to be carried around on a CD and to be used on any Windows XP machine with SP2 installed. What it does: Creates a system restore point. Turns off system restore to prevent each update from doing it individually. Checks if the updates are installed (checks for log files or an install folder) skips the update if it is installed and installs the update if it is lacking. Then it turns system restore back on. First off we've got the main batch file. Call this whatever you want, it just has to end in .bat @ECHO off GOTO START @author ahab @version 4/15/5 :START SET /A NUMOFUPDATES=0 ECHO Creating a System Restore point createrestorepoint.vbs NET STOP srservice ECHO .NET Framework REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFRAMEWORK" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... dotnetfx /q:a /c:"install /q" SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB867460 .NET Framework 1.1 Service Pack 1 REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\.NETFramework\1.1\S867460" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... NDP1.1sp1-KB867460-X86.exe /q SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB886903 ASP.NET path validation vulnerability in Microsoft .NET ECHO Framework 1.1 Service Pack 1 REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\.NETFramework\1.1\M886903" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... NDP1.1sp1-KB886903-X86.exe /q SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB890830-V1.3 Microsoft Windows Malicious Software Removal Tool V1.3 REG QUERY "HKLM\SOFTWARE\Microsoft\RemovalTools\MRT" /v "Version" | FIND "D89EBFD1-262C-4990-9927-5185FED1F261" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... Windows-KB890830-V1.3-ENU.exe /q SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB873333 Vulnerability in OLE and COM could allow remote code execution REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB873333" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB873333-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB873339 Vulnerability in HyperTerminal could allow code execution REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB873339" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB873339-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB873374 Microsoft GDI+ Detection Tool REM The following will just make it seem like it has been run REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\GdiDetectionTool" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... REG ADD "HKLM\SOFTWARE\Microsoft\GdiDetectionTool" /v "GDITool" /t REG_DWORD /d "00000001" /f > nul 2>&1 SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB885250 Vulnerability in server message block could ECHO allow remote code execution REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB885250" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB885250-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB885835 Vulnerabilities in Windows Kernel and LSASS could allow ECHO elevation of privilege REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB885835" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB885835-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB885836 A vulnerability in WordPad could allow code execution REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB885836" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB885836-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB886185 Critical Update for Windows XP REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB886185" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB886185-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB887472 Security update to Microsoft Windows Messenger REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB887472" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB887472-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB887742 Security update to Microsoft Windows Messenger REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB887742" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB887742-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB887797 Cumulative Update for Outlook Express for Windows XP REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB887797" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB887797-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB888113 Vulnerability in hyperlink object library could allow remote code ECHO execution REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB888113" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB888113-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB888302 Vulnerability in Windows could allow information disclosure REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB888302" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB888302-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB890175 Vulnerability in HTML Help could allow code execution REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB890175" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB890175-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB890859 Security Update for Windows XP REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB890859" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB890859-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB890923 Cumulative Security Update for Internet Explorer REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB890923" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB890923-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB891781 Vulnerability in the DHTML editing component ActiveX control could ECHO allow code execution REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB891781" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB891781-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB893066 Security Update for Windows XP REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB893066" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB893066-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB893086 Security Update for Windows XP REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB893086" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsXP-KB893086-x86-enu.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) ECHO KB893803 Microsoft Windows Installer 3.1 REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB893803" > nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO is already installed ) ELSE ( ECHO Installing... WindowsInstaller-KB893803-x86.exe /quiet /norestart SET /A NUMOFUPDATES+=1 ECHO Installation complete. ) NET START srservice ECHO The updater script has completed. %NUMOFUPDATES% installed. IF %NUMOFUPDATES% GTR 0 ECHO A reboot is reccomended. PAUSEYou probably noticed createrestorepoint.vbs. Thats a visual basic script that does what it says... the following goes into that file 'Unattended System Restore Point 'sysrestorepoint.vbs '© Doug Knox - rev 02/11/2002 'Downloaded from www.dougknox.com 'Extracted from original code by Bill James - www.billsway.com 'Modified even more by ahab Set sr = getobject("winmgmts:\\.\root\default:Systemrestore") If (sr.createrestorepoint("Updater Restore Point", 0, 100)) <> 0 Then MsgBox "Restore Point creation Failed!" End IfA lot of help from HOTFIXES: Win2000 SP4 – WinXP SP1 – WinXP SP2. And here are the links to download all the updates: KB891781 KB890830 1.2 KB890175 KB890047 KB888302 KB888113 KB887797 KB887742 KB887472 KB886903 KB886185 KB885836 KB885835 KB885250 KB873374 KB873339 KB873333 KB867460 KB867282 .NET Framework Version 1.1 For future refrence here are the updates that actually make a restore point: KB891781, KB890175, KB888302, KB888113, KB887797, KB887472 (last known accurate 3/8/5) And the scripts that I have posted above are attached in a .zip file. Just Extract the .zip file and download all the updates to the directory that the scripts are in, run the .bat and you're set. It does not include WMP 10. I know this. I might add that in the future... but not now. Changelog: 3/6/5 - Fist major release 3/8/5 - Added malicious software removal 1.2, and removed anything that refrenced .net as anything besides the 1.1 install was broken. I'll try and add that later... but its not needed right now. The .NET package included these three:.NET Framework Version 1.1 KB867460 KB886903. I also added a bit in the malicious software detection from this post. I want that to actually run, unlike the GDI+ detection tool. You can change that by just putting REM infront of what you want to don't want to run. 3/13/5 See This post Comments? Concerns? Sarcastic remarks? Updates.zip