here is some code to determine:
office version
service pack (only for MSO2k, so far)
apply SR1a
Apply SP-3
Apply VBA patch

Anyone see any way to improve... efficiency, logic, etc...

code:
 
DIM $OFVer[5], $ACVer[5], $XLVer[5], $OLVer[5], $PPVer[5], $WDVer[5], $Arr_OfficeSP[5]
$ier =readvalue("HKLM\Software\Microsoft\Internet Explorer", "Version")
$office =readvalue("$HKLMSMWCV\Uninstall\{00010409-78E1-11D2-B60F-006097C998E7}","DisplayName")
$MSOdir =readvalue("$HKLMSMWCV\App Paths\excel.exe","Path")
$access =getfileversion("$MSOdir\msaccess.exe")
$excel =getfileversion("$MSOdir\excel.exe")
$outlook=getfileversion("$MSOdir\Outllib.dll")
$powerpt=getfileversion("$MSOdir\powerpnt.exe")
$pub =getfileversion("$MSOdir\mspub.exe")
$Word =getfileversion("$MSOdir\winword.exe")
$MSOVer =split($excel,'.')[0]
select
case $MSOVer = '11' $office = "2003"
case $MSOVer = '10' $office = "XP"
case $MSOVer = '9' $office = "2000"
$OFVer = 'base', 'SR-1', 'SP-2', 'SP-3', 'OOB'
$ACVer = '9.0.2720', '9.0.3821', '9.0.4506', '9.0.6620', '9.9' ;Access
$XLVer = '9.0.2720', '9.0.3821', '9.0.4430', '9.0.6627', '9.9' ;Excel
$OLVer = '9.0.2711', '9.0.3821', '9.0.4527', '9.0.6627', '9.9' ;Outlook
$PPVer = '9.0.2716', '9.0.3821', '9.0.4527', '9.0.6620', '9.9' ;Powerpoint
$WDVer = '9.0.2720', '9.0.3821', '9.0.4527', '9.0.6926', '9.9' ;Word
for $ver = 0 to 3
if $Access => $ACVer[$ver] and $Access < $ACVer[$ver +1] $ACSPack = $OFVer[$Ver] endif
if $Excel => $XLVer[$ver] and $Excel < $XLVer[$ver +1] $XLSPack = $OFVer[$Ver] endif
if $Outlook => $OLVer[$ver] and $Outlook < $OLVer[$ver +1] $OLSPack = $OFVer[$Ver] endif
if $powerpt => $PPVer[$ver] and $powerpt < $PPVer[$ver +1] $PPSPack = $OFVer[$Ver] endif
if $Word => $WDVer[$ver] and $Word < $WDVer[$ver +1] $WDSPack = $OFVer[$Ver] endif
next
$Arr_OfficeSP = $ACSPack,$XLSPack,$OLSPack,$PPSPack,$WDSPack
for $loop=3 to 0 step -1
if AScan($Arr_OfficeSP,$OFVer[$loop])+1
$O2kSP=$OFVer[$loop]
endif
next
$MSOProducts="HKLM\Software\Classes\Installer\Products\904010001E872D116BF00006799C897E"
$=writevalue("$MSOProducts\SourceList\Net","1","$setup\mso2k\CD1\",REG_Expand_SZ)
$=writevalue("$MSOProducts\SourceList","LastUsedSource","n;1;$setup\mso2k\CD1\",REG_Expand_SZ)
$=writevalue("$MSOProducts\SourceList\Net","1","$setup\mso2k\CD2\",REG_Expand_SZ)
$=writevalue("$MSOProducts\SourceList","LastUsedSource","n;1;$setup\mso2k\CD2\",REG_Expand_SZ)
$=writevalue("$HKLMSMWCV\Uninstall\{00010409-78E1-11D2-B60F-006097C998E7}","InstallSource","$setup\mso2k\CD1\",REG_SZ)
$=writevalue("$HKLMSMWCV\Uninstall\{00040409-78E1-11D2-B60F-006097C998E7}","InstallSource","$setup\mso2k\CD2\",REG_SZ)
case $MSOVer = '8' $office = "97"
endselect
? color c+/n " Operating System: " color w+/n @producttype +' '+ @csd color w/n
? color c+/n " Internet Explorer: " color w+/n $ier color w/n
? color c+/n " Office Suite: " color w+/n "Microsoft Office "+ $office +' '+ $O2kSP color w/n

; ********************************* Microsoft Office 2000 SP-3 *******************************************
if $office = '2000'
if $O2kSP='base'
if updateapp("MicrosoftOfficeSR1a",3)="yes"
shell "$setup\mso2k\SR1a\O2kSR1aDL.exe /q:u"
$=Writeprofilestring("$logon\inventory\Install.log","MicrosoftOfficeSR1a",@wksta,@date)
endif
endif
if not $O2kSP='SP-3'
if updateapp("MicrosoftOfficeSP3",3)="yes"
shell "$setup\mso2k\sp3\o2ksp3.exe /q:u"
$=Writeprofilestring("$logon\inventory\Install.log","MicrosoftOfficeSP3",@wksta,@date)
endif
if readvalue("HKLM\SOFTWARE\Updateapps\MicrosoftOfficeSP3","Offers") > 4
$=Writeprofilestring("$logon\inventory\Error.log","MicrosoftOfficeSP3",@wksta,@date)
$=sendmessage($dcsa,"error installing MSO SP3 on @wksta")
endif
endif
if $O2kSP='SP-3'
$vbe6 = readvalue('HKLM\SOFTWARE\Microsoft\VBA','Vbe6DllPath')
if getfileversion($vbe6)<'6.4.9969'
if updateapp("OfficeVB_KB822035",3)="yes"
shell "$setup\KB822035\office2000-kb822035-client-enu.exe /q:u /r:n" ; or /qb+
$=Writeprofilestring("$logon\inventory\Install.log","KB822035",@wksta,@date)
endif
endif
endif
endif

_________________________
How to ask questions the smart way <-----------> Before you ask