MSXML 4.0 SP3 - (Remove old MSXML SP3 and install new MSXML SP3)

(imported topic written by anthonymap91)

To install the UPDATE: MSXML 4.0 SP3 fixlet, i have to remove the old beta MSXML 4.0 SP3.

I have been trying to find a way to remove the old MSXML 4.0 SP3 (Beta patch) in one fixlet

Details:

No one knows where the beta patch is installed

No one can tell me how to identify the beta patch

I found the name of the Beta patch and the new patch in the “add/remove” is the same.

I wrote this below and wanted to get your opinion. It is a combination of the BigFix created Fixlet to install the MSXML 4.0 SP3 and an added detection and action. I have to add the following regedit to vista and 2008; not done yet.

reg delete HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\x86_microsoft.msxml2r_6bd6b9abf345378f_4.30.2100.0_none_03d8af9e7277524d

Relevance:

(((((if( name of operating system starts with “Win” ) then platform id of operating system != 3 else false) AND ((language of version block of file “kernel32.dll” of system folder contains “English”) OR (exists key “HKLM\System\CurrentControlSet\Control\Nls\MUILanguages” whose (exists value of it) of registry))) AND (not exists values “PROCESSOR_ARCHITECTURE” whose (it as string as lowercase = “ia64”) of keys “HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment” of registry)) AND (((name of it = “WinXP” AND service pack major version of it >= 2) OR (name of it = “WinVista”) OR (name of it = “Win2008”) OR (name of it = “Win2000” AND service pack major version of it >= 4) OR (name of it = “WinXP-2003” AND service pack major version of it >= 2) OR (name of it = “Win2003” AND service pack major version of it >= 1)) of operating system)) AND ((exists file “msiexec.exe” whose (version of it >= “3”) of system folder))) AND (exists file “msxml4.dll” whose (version of it < ") of system folder) and (exists key whose (value “DisplayName” of it as string as lowercase contains “msxml 4.0 sp3”) of key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry)

Action:

///remove old patch (beta)

wait {(preceding text of first “%00” of (it as string) of value “UninstallString” of keys whose (value “DisplayName” of it as string as lowercase contains "msxml 4.0 sp3 " AND value “DisplayVersion” of it = “4.30.2100.0”) of key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry as string)} /q

///Install new patch

download http://download.microsoft.com/download/A/2/D/A2D8587D-0027-4217-9DAD-38AFDB0A177E/msxml.msi

continue if {(size of it = 2434048 and sha1 of it = “aa70c5c1a7a069af824947bcda1d9893a895318b”) of file “msxml.msi” of folder “__download”}

waithidden msiexec.exe /i __download\msxml.msi /quiet /norestart

action may require restart “aa70c5c1a7a069af824947bcda1d9893a895318b”

It seems to detect properlly but would like to get help on remove and install action

Any help would be great.

Thanks, Anthony

(imported comment written by BenKus)

Hey Anthony,

It seems pretty good on the surface… One question is whether you need a restart after the uninstall and before the install?

Does it seem to work the way you want?

Ben

(imported comment written by anthonymap91)

It does not require a reboot.

I have not been able to test it yet; I just wanted to throw it out there for someone to look over and provide feedback.

Thanks,

Anthony

(imported comment written by anthonymap91)

I was able to test and the action failed. Can anyone tell me what I am missing?

Thanks

It looks like it did not uninstall the MSXML 4.0 SP3.

Completed wait {(preceding text of first “%00” of (it as string) of value “UninstallString” of keys whose (value “DisplayName” of it as string as lowercase contains "msxml 4.0 sp3 " AND value “DisplayVersion” of it = “4.30.2100.0”) of key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry as string)} /q

Completed download http://download.microsoft.com/download/A/2/D/A2D8587D-0027-4217-9DAD-38AFDB0A177E/msxml.msi

Completed continue if {(size of it = 2434048 and sha1 of it = “aa70c5c1a7a069af824947bcda1d9893a895318b”) of file “msxml.msi” of folder “__download”}

Completed waithidden msiexec.exe /i __download\msxml.msi /quiet /norestart

Completed action may require restart “aa70c5c1a7a069af824947bcda1d9893a895318b”

(imported comment written by anthonymap91)

I also tried this, no luck. (Name entered “msxml 4.0 sp3 parser”)

Completed action parameter query “NAME” with description “Please enter the Program Name (needs to match the name in the add/remove programs”

Failed waithidden “{pathname of system folder & “\msiexec.exe”}” /QN REBOOT=ReallySuppress /X{name of key whose (value “DisplayName” of it as lowercase =(parameter “NAME” of action as lowercase) and name of it starts with “{”) of key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry}

download http://download.microsoft.com/download/A/2/D/A2D8587D-0027-4217-9DAD-38AFDB0A177E/msxml.msi

continue if {(size of it = 2434048 and sha1 of it = “aa70c5c1a7a069af824947bcda1d9893a895318b”) of file “msxml.msi” of folder “__download”}

waithidden msiexec.exe /i __download\msxml.msi /quiet /norestart

action may require restart “aa70c5c1a7a069af824947bcda1d9893a895318b”

(imported comment written by BenKus)

What does the error in the client log say for that line?

Ben

(imported comment written by anthonymap91)

I wanted to make sure that I reported back.

I found the issue in my Fixlet and it now works, but any feedback would be great.

Issue to address: Update: MSXML 4.0 SP3 - This Fixlet may not work properly for machines that already have the MSXML 4.0 SP3 Beta installed. To fix this, uninstall MSXML 4.0 SP3 beta before running this Fixlet.

Solution: This Fixlet will Uninstall MSXML 4.0 SP3 beta version and apply new MSXML 4.0 SP3)

Relevance 1:

(((((if( name of operating system starts with “Win” ) then platform id of operating system != 3 else false) AND ((language of version block of file “kernel32.dll” of system folder contains “English”) OR (exists key “HKLM\System\CurrentControlSet\Control\Nls\MUILanguages” whose (exists value of it) of registry))) AND (not exists values “PROCESSOR_ARCHITECTURE” whose (it as string as lowercase = “ia64”) of keys “HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment” of registry)) AND (((name of it = “WinXP” AND service pack major version of it >= 2) OR (name of it = “WinVista”) OR (name of it = “Win2008”) OR (name of it = “Win2000” AND service pack major version of it >= 4) OR (name of it = “WinXP-2003” AND service pack major version of it >= 2) OR (name of it = “Win2003” AND service pack major version of it >= 1)) of operating system)) AND ((exists file “msiexec.exe” whose (version of it >= “3”) of system folder))) AND (exists file “msxml4.dll” whose (version of it < ") of system folder) and (exists key whose (value “DisplayName” of it as string as lowercase contains “msxml 4.0 sp3”) of key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry)

Action 1: (Defeult)

// Uninstall MSXML 4.0 SP3 Parser

if {exists key whose ( Value “Displayname” of it as string contains “MSXML 4.0 SP3 Parser” ) of key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry}

wait {“msiexec.exe /qn REBOOT=ReallySuppress /X” & preceding text of first “%00” of Following text of first “MsiExec.exe /I” of (Value “UninstallString” of key whose ( Value “Displayname” of it as string contains “MSXML 4.0 SP3 Parser” ) of key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry as string)}

//install new

download http://download.microsoft.com/download/A/2/D/A2D8587D-0027-4217-9DAD-38AFDB0A177E/msxml.msi

continue if {(size of it = 2434048 and sha1 of it = “aa70c5c1a7a069af824947bcda1d9893a895318b”) of file “msxml.msi” of folder “__download”}

waithidden msiexec.exe /i __download\msxml.msi /quiet /norestart

action may require restart “aa70c5c1a7a069af824947bcda1d9893a895318b”

(imported comment written by anthonymap91)

OK, so the Fixlet seems to work. But I am not sure why I still see the fixlet still relevant after it has completed successfully.

This is the action status: Fixed

Sub-action Status

Fixed UPDATE: MSXML 4.0 SP3 (Uninstall MSXML 4.0 SP3 beta version and apply new MSXML 4.0 SP3)

Not Relevant UPDATE: MSXML 4.0 SP3 Available

But when I look at the same server later (Maybe the next day) I see the same two fixlets relevant again.

Any thoughts?

Thanks

(imported comment written by sharad91)

how to remove system from usb read group.