Windows 2000 SP4 and HotFixes

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Does microsoft have a package for sysadmins that includes SP4 and all the
patches from that time until now. SP4 is over a year old and a lot of fixes
have been made since then. When you have a network of 40 workstations it's
far too time consuming to roll out SP4 across the whole network and then use
WinUpdate on every single workstation for the latest fixes. Someone pls help.
 
Hi,

The easiest thing would be to put a vbs script as peoples logon script.
Using this there relevant hotfixes can be run on each PC as people log on.
It is possible to put a switch onto the patch command to make the entire
event invisible to users. Here is a sample of the required script:

Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")

For Each objOperatingSystem In colOperatingSystems
intOSType = objOperatingSystem.OSType
strOSVer = Left(objOperatingSystem.Version, 3)
Next

SetLocale "en-us"

Select Case intOSType
Case 18
Select Case strOSVer
Case 5.0
intOSVer = 5 'Windows 2000
'Set objShell = CreateObject("Wscript.Shell")
objShell.Run"\\Server1\W2k\Windows2000-KB824151-x86-ENU.EXE /passive
/norestart", 1, True 'MS04-030
objShell.Run"\\Server1\W2k\Windows2000-KB841533-x86-ENU.EXE /passive
/norestart", 1, True 'MS04-031
objShell.Run"\\Server1\W2k\Windows2000-KB840987-x86-ENU.EXE /passive
/norestart", 1, True 'MS04-032
objShell.Run"\\Server1\W2k\Windows2000-KB883935-x86-ENU.EXE /passive
/norestart", 1, True 'MS04-036
objShell.Run"\\Server1\W2k\Windows2000-KB841356-x86-ENU.EXE /passive
/norestart", 1, True 'MS04-037
objShell.Run"\\Server1\W2k\IE6.0sp1-KB834707-Windows-2000-XP-x86-ENU.exe
/passive /norestart", 1, True 'MS04-038

Case 5.1
intOSVer = 6 'Windows XP
Set objShell = CreateObject("Wscript.Shell")
objShell.Run"\\Server1\WXp\WindowsXP-KB834707-x86-enu.exe /passive
/norestart", 1, True 'MS04-038



Case 5.2
intOSVer = 7 'Windows Server 2003
Set objShell = CreateObject("Wscript.Shell")
objShell.Run"\\Server1\W2k3\WindowsServer2003-KB841356-x86-enu.EXE /passive
/norestart", 1, True 'MS04-037
objShell.Run"\\Server1\W2k3\WindowsServer2003-KB834707-x86-enu.EXE
/passive /norestart", 1, True 'MS04-038


Case Else
intOSVer = 0 'Older or newer version
'MsgBox "Your Operating System is not supported by this script"

End Select
Case Else
intOSVer = 0 'Older or newer version
MsgBox "Operation System not supported"


End Select
MsgBox "Operating System Patching completed"

set objShell=nothing


'
'http://groups.google.co.uk/groups?q...312071628.5e7a22'[email protected]&rnum=2

You can add into each Case the required patches, and you can use this for
any of the newer OS's. The only issue with this is that every time the user
logs on, the hotfixes will run. It is possible, but fairly complex to put in
a registry read to determine if a hotfix is required prior to installing eah
hotfix. This would make the script much more complex and cumbersome. Easiest
would be to set the script as a login script for a domain admin user, then
use that user account to log onto each machine once and let the script patch
the machine. It would be relatively easy to add a line at the bottom of the
script that runs the Windows update website on completon of the script to
ensure everything is fully patched. If required, the script could even
reboot the system on completion

I'd keep it simple. Add in lines similar to:

objShell.Run"\\Server1\W2k\Windows2000-KB824151-x86-ENU.EXE /passive
/norestart", 1, True 'MS04-030

for each required patch. This assumes that you have downloaded all the
required patches to a machine called Server1 with shares called W2k WXp and
W2k3.

Hope this helps

John
 
Back
Top