Patch Roll Back for MS06-042

(imported topic written by Doug_Coburn)

Today with a customer we ran across a case where Windows 2000 computers had the uninstall key in a slightly different location then the default. The non-standard location is “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB918899-IE6SP1-20060725.123917”.

I am pasting the relevance and action script for the changes needed to have the task work correctly.

Relevance

(name of operating system = 
"Win98" OR name of operating system = 
"WinME" OR name of operating system = 
"WinNT" OR name of operating system = 
"Win2000" OR name of operating system = 
"WinXP" OR name of operating system = 
"Win2003" ) AND (

if (exists key 
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB918899" of registry) then (value 
"UninstallString" of key 
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB918899" of registry as string contains 
"spuninst.exe" and name of key 
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB918899" of registry as string does not contain 
"Service Pack" ) 

else (

if (exists key 
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB918899-IE6SP1-20060725.123917" of registry) then (value 
"UninstallString" of key 
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB918899-IE6SP1-20060725.123917" of registry as string contains 
"spuninst.exe" and name of key 
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB918899-IE6SP1-20060725.123917" of registry as string does not contain 
"Service Pack" ) 

else (

if (name of operating system = 
"Win95" OR name of operating system = 
"Win98" OR name of operating system = 
"WinME" ) then (value 
"UninstallString" of key 
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB834707" of registry as string contains 
"RunDll32 advpack.dll,LaunchINFSection" ) 

else 

if (name of operating system = 
"WinNT" ) then (value 
"UninstallString" of key 
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB834707" of registry as string contains 
"hotfix.exe" ) 

else (

false))))

ActionScript

wait 
{

if (name of operating system = 
"Win2000" OR name of operating system = 
"Win2003" OR name of operating system = 
"WinXP" ) then (

if exists key 
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\KB918899" of registry then (value 
"UninstallString" of key 
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\KB918899" of registry as string & 
" -u -q -z" ) 

else (

if exists key 
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\KB918899-IE6SP1-20060725.123917" of registry then (value 
"UninstallString" of key 
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\KB918899-IE6SP1-20060725.123917" of registry as string & 
" -u -q -z" ) 

else 
"No Key" )) 

else 

if (name of operating system = 
"Win95" OR name of operating system = 
"Win98" OR name of operating system = 
"WinME" ) then (value 
"UninstallString" of key 
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\KB834707" of registry as string) 

else (value 
"UninstallString" of key 
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\KB834707" of registry as string & 
" -q -z -y -m" )
} action may require restart

-D