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 wOOdy-Soft 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
Dec 2, 2002
144
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