Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Rhinorhino on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Scripting Question : Install multiple patches with this script

Status
Not open for further replies.

brendaluv

Technical User
Joined
Dec 2, 2002
Messages
144
Location
CA
the following script verifies and installs missing patches on a windows 2000 sp4 PC. Then writes a log file.

obviously, we are having some issues. if we try to run it using AD/Computer Settings/Startup - it will install only a few patches at a time, for ex: if i have 12 patches missing, it will install only 2 at a time. If we run the script manually, it will install about 8-10 patches.

here is the code

@echo off

net use L: "\\server\sharename"

set home=L:\

set one=%WINDIR%\$NtUninstallkb329115$
set two=%WINDIR%\$NtUninstallkb823182$
set three=%WINDIR%\$NtUninstallkb823559$
set four=%WINDIR%\$NtUninstallkb824105$
set five=%WINDIR%\$NtUninstallkb826232$
set six=%WINDIR%\$NtUninstallkb828035$
set seven=%WINDIR%\$NtUninstallkb828741$
set eight=%WINDIR%\$NtUninstallkb828749$
set nine=%WINDIR%\$NtUninstallkb835732$
set ten=%WINDIR%\$NtUninstallkb837001$
set eleven=%WINDIR%\$NtUninstallkb839643$
set twelve=%WINDIR%\$NtUninstallkb839645$
set thirteen=%WINDIR%\$NtUninstallkb840987$
set fourteen=%WINDIR%\$NtUninstallkb841356$
set fifteen=%WINDIR%\$NtUninstallkb841533$
set sixteen=%WINDIR%\$NtUninstallkb841872$
set seventeen=%WINDIR%\$NtUninstallkb841873$
set eighteen=%WINDIR%\$NtUninstallkb842526$
set nineteen=%WINDIR%\$NtUninstallkb871250$
set twenty=%WINDIR%\$NtUninstallkb873333$
set twentyone=%WINDIR%\$NtUninstallkb873339$
set twentytwo=%WINDIR%\$NtUninstallkb885250$
set twentythree=%WINDIR%\$NtUninstallkb885835$
set twentyfour=%WINDIR%\$NtUninstallkb885836$
set twentyfive=%WINDIR%\$NtUninstallkb888113$
set twentysix=%WINDIR%\$NtUninstallkb890046$
set twentyseven=%WINDIR%\$NtUninstallkb890859$
set twentyeight=%WINDIR%\$NtUninstallkb891781$
set twentynine=%WINDIR%\$NtUninstallkb891861$
set thirty=%WINDIR%\$NtUninstallkb893066$
set thirtyone=%WINDIR%\$NtUninstallkb893086$
set thirytwo=%WINDIR%\$NtUninstallkb893756$
set thirtythree=%WINDIR%\$NtUninstallkb894320$
set thirtyfour=%WINDIR%\$NtUninstallkb896358$
set thirtyfive=%WINDIR%\$NtUninstallkb896422$
set thitysix=%WINDIR%\$NtUninstallkb896423$
set thirtyseven=%WINDIR%\$NtUninstallkb899587$
set thirtyeight=%WINDIR%\$NtUninstallkb899588$
set thirtynine=%WINDIR%\$NtUninstallkb901214$
set fourty=%WINDIR%\$NtUninstallkb890830$


rem -----------------------------------------------------------

cls

IF EXIST %one% (
echo %COMPUTERNAME% %USERNAME% "Installed " %one% "Hotfix" >> %home%\%computername%.log
)
IF NOT EXIST %one% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb329115-x86-enu.exe" /q /z
)

IF EXIST %two% (
echo %COMPUTERNAME% %USERNAME% "Installed " %two% "Hotfix" >> %home%\%computername%.log
)
IF NOT EXIST %two% (
"%home%\after2ksp4\windows2000-kb823182-x86-enu.exe" /q /z
)

IF EXIST %three% (
echo %COMPUTERNAME% %USERNAME% "Installed " %three% "Hotfix" >> %home%\%computername%.log
)
IF NOT EXIST %three% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb823559-x86-enu.exe" /q /z
)

IF EXIST %four% (
echo %COMPUTERNAME% %USERNAME% "Installed " %four% "Hotfix" >> %home%\%computername%.log
)
IF NOT EXIST %four% (
"%home%\after2ksp4\windows2000-kb824105-x86-enu.exe" /q /z
)

IF EXIST %five% (
echo %COMPUTERNAME% %USERNAME% "Installed " %five% "Hotfix" >> %home%\%computername%.log
)
IF NOT EXIST %five% (
"%home%\after2ksp4\windows2000-kb826232-x86-enu.exe" /q /z
)

IF EXIST %six% (
echo %COMPUTERNAME% %USERNAME% "Installed " %six% "Hotfix" >> %home%\%computername%.log
)
IF NOT EXIST %six% (
"%home%\after2ksp4\windows2000-kb828035-x86-enu.exe" /q /z
)

IF EXIST %seven% (
echo %COMPUTERNAME% %USERNAME% "Installed " %seven% "Hotfix" >> %home%\%computername%.log
)
IF NOT EXIST %seven% (
"%home%\after2ksp4\windows2000-kb828741-x86-enu.exe" /q /z
)

IF EXIST %eight% (
echo %COMPUTERNAME% %USERNAME% "Installed " %eight% "Hotfix" >> %home%\%computername%.log
)
IF NOT EXIST %eight% (
"%home%\after2ksp4\windows2000-kb828749-x86-enu.exe" /q /z
)

IF EXIST %nine% (
echo %COMPUTERNAME% %USERNAME% "Installed " %nine% "Hotfix" >> %home%\%computername%.log
)
IF NOT EXIST %nine% (
"%home%\after2ksp4\windows2000-kb835732-x86-enu.exe" /q /z
)

IF EXIST %ten% (
echo %COMPUTERNAME% %USERNAME% "Installed " %ten% "Hotfix" >> %home%\%computername%.log
)
IF NOT EXIST %ten% (
"%home%\after2ksp4\windows2000-kb837001-x86-enu.exe" /q /z
)

rem -------------------------------------------------------------------------------------

IF EXIST %eleven% (
echo %COMPUTERNAME% %USERNAME% "Installed " %eleven% "Hotfix" >> %home%\%computername%.log
)
IF NOT EXIST %eleven% (
"%home%\after2ksp4\windows2000-kb839643-x86-enu.exe" /q /z
)

IF EXIST %twelve% (
echo %COMPUTERNAME% %USERNAME% "Installed " %twelve% "Hotfix" >> %home%\%computername%.log
)
IF NOT EXIST %twelve% (
"%home%\after2ksp4\windows2000-kb839645-x86-enu.exe" /q /z
)

IF EXIST %thirteen% (
echo %COMPUTERNAME% %USERNAME% "Installed " %thirteen% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %thirteen% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb840987-x86-enu.exe" /q /z
)

IF EXIST %fourteen% (
echo %COMPUTERNAME% %USERNAME% "Installed " %fourteen% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %fourteen% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb841356-x86-enu.exe" /q /z
)

IF EXIST %fifteen% (
echo %COMPUTERNAME% %USERNAME% "Installed " %fifteen% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %fifteen% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb841533-x86-enu.exe" /q /z
)

IF EXIST %sixteen% (
echo %COMPUTERNAME% %USERNAME% "Installed " %sixteen% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %sixteen% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb841872-x86-enu.exe" /q /z
)

IF EXIST %seventeen% (
echo %COMPUTERNAME% %USERNAME% "Installed " %seventeen% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %seventeen% (
"%home%\after2ksp4\windows2000-kb842526-x86-enu.exe" /q /z
)

IF EXIST %eighteen% (
echo %COMPUTERNAME% %USERNAME% "Installed " %eighteen% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %eighteen% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb842526-x86-enu.exe" /q /z
)

IF EXIST %nineteen% (
echo %COMPUTERNAME% %USERNAME% "Installed " %nineteen% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %nineteen% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb871250-x86-enu.exe" /q /z
)

rem -----------------------------------------------------------------------------------

IF EXIST %twenty% (
echo %COMPUTERNAME% %USERNAME% "Installed " %twenty% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %twenty% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb873333-x86-enu.exe" /q /z
)

IF EXIST %twentyone% (
echo %COMPUTERNAME% %USERNAME% "Installed " %twentyone% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %twentyone% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb873339-x86-enu.exe" /q /z
)

IF EXIST %twentytwo% (
echo %COMPUTERNAME% %USERNAME% "Installed " %twentytwo% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %twentytwo% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb885250-x86-enu.exe" /q /z
)

IF EXIST %twentythree% (
echo %COMPUTERNAME% %USERNAME% "Installed " %twentythree% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %twentythree% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb885835-x86-enu.exe" /q /z
)

IF EXIST %twentyfour% (
echo %COMPUTERNAME% %USERNAME% "Installed " %twentyfour% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %twentyfour% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb885836-x86-enu.exe" /q /z
)

IF EXIST %twentyfive% (
echo %COMPUTERNAME% %USERNAME% "Installed " %twentyfive% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %twentyfive% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb888113-x86-enu.exe" /q /z
)

IF EXIST %twentysix% (
echo %COMPUTERNAME% %USERNAME% "Installed " %twentysix% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %twentysix% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb890046-x86-enu.exe" /q /z
)

IF EXIST %twentyseven% (
echo %COMPUTERNAME% %USERNAME% "Installed " %twentyseven% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %twentyseven% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb890859-x86-enu.exe" /q /z
)

IF EXIST %twentyeight% (
echo %COMPUTERNAME% %USERNAME% "Installed " %twentyeight% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %twentyeight% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb891781-x86-enu.exe" /q /z
)

IF EXIST %twentynine% (
echo %COMPUTERNAME% %USERNAME% "Installed " %twentynine% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %twentynine% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb891861-x86-enu.exe" /q /z
)

rem ------------------------------------------------------------------------------

IF EXIST %thirty% (
echo %COMPUTERNAME% %USERNAME% "Installed " %thirty% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %thirty% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb893066-v2-x86-enu.exe" /q /z
)

IF EXIST %thirtyone% (
echo %COMPUTERNAME% %USERNAME% "Installed " %thirtyone% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %thirtyone% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb893086-x86-enu.exe" /q /z
)

IF EXIST %thirtytwo% (
echo %COMPUTERNAME% %USERNAME% "Installed " %thirtytwo% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %thirtytwo% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb893756-x86-enu.exe" /q /z
)

IF EXIST %thirtythree% (
echo %COMPUTERNAME% %USERNAME% "Installed " %thirtythree% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %thirtythree% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb894320-x86-enu.exe" /q /z
)

IF EXIST %thirtyfour% (
echo %COMPUTERNAME% %USERNAME% "Installed " %thirtyfour% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %thirtyfour% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb896358-x86-enu.exe" /q /z
)

IF EXIST %thirtyfive% (
echo %COMPUTERNAME% %USERNAME% "Installed " %thirtyfive% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %thirtyfive% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb896422-x86-enu.exe" /q /z
)

IF EXIST %thirtysix% (
echo %COMPUTERNAME% %USERNAME% "Installed " %thirtysix% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %thirtysix% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb896423-x86-enu.exe" /q /z
)

IF EXIST %thirtyseven% (
echo %COMPUTERNAME% %USERNAME% "Installed " %thirtyseven% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %thirtyseven% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb899587-x86-enu.exe" /q /z
)

IF EXIST %thirtyeight% (
echo %COMPUTERNAME% %USERNAME% "Installed " %thirtyeight% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %thirtyeight% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb899588-x86-enu.exe" /q /z
)

IF EXIST %thirtynine% (
echo %COMPUTERNAME% %USERNAME% "Installed " %thirtynine% "Hotfix" >> %home%\%computername%.log
)

IF NOT EXIST %thirtynine% (
%home%\hello.bat
"%home%\after2ksp4\windows2000-kb901214-x86-enu.exe" /q /z
)

rem --------------------------------------------------------------------------------------

IF EXIST %fourty% (
echo %COMPUTERNAME% %USERNAME% "Installed " %fourty% "Hotfix" >> %home%\%computername%.log
)
IF NOT EXIST %fourty% (
%home%\hello.bat
"%home%\after2ksp4\windows-kb890830-v1.7-enu.exe" /q /z
)

rem ---------------------------------current time----------------------------

echo. |time |find "current" >> %home%\%computername%.log
echo ----------------------------------------- >> %home%\%computername%.log

net use l: /d

:EXIT
 
I don't think all patches use the /q /z parameters, although MS is moving that direction. You might check the ones that aren't installing. Also, checkout WSUS, it's free from MS, and should do a better job than your batch file.



=====================================
The good ole days weren't always good
and tomorrow ain't as bad as it seems
=====================================
 
Microsoft also have a utility called qchain for chaining of patches together - I havent used it for a while - do a search in the MS KB for it.

Ian
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top