Seit geraumer Zeit kann es zu UAC Meldungen bei der Reinstallation von MSI Paketen kommen. Ich habe auch schon die Meldung bekommen das es auch bei Installationen passiert ist. Was ist der Hintergrund und wie kann sich behelfen.
MS14-049
Microsoft hat im Oktober 2014 einen Patch unter der Bulletin ID MS14-049 veröffentlicht. Dieser Patch schließt eine Lücke im Windows Installer Dienst: „Vulnerability in Windows Installer Service Could Allow Elevation of Privilege“. Damit einhergehend werden für MSI Installationen neue Hash Werte ermittelt bzw. erstellt. Dies führt bei einer Reinstallation einer bereits installierten MSI Installation zu Problemen.
Mögliche Abhilfen
Whitelisting der Installation
Microsoft hat direkt Methoden zur Erstellung von Whitelist Einträgen, pro getätigter MSI Installation die repariert werden soll, angeboten. Bei dem Einsatz einer Softwareverteilung und einer Fülle an getätigter Software Installationen bereitet das keinen Spaß.
Die Informationen dazu wurden hier veröffentlicht.
Patch zur Behebung des UAC Problems
Im November wiederum wurde dann ein Hotfix veröffentlicht, der mit Hilfe eines Registry Keys generell die UAC Meldungen bei einem nicht vorhandenen MSI Hash Wert unterbinden soll.
Dieser Hotfix samt Vorgehensweise ist hier veröffentlicht.
Die Vorgehensweise mit dem nachgelagerten Hotfix scheint eine sinnvolle Behebung bzw. Umgehung der Problematik zu sein. Doch auch diese Umgehung scheint nach Rückmeldungen nicht zu 100% zu funktionieren.
Deinstallation des MS14-049
Letztendlich bleibt einem bei allen oben getroffenen Maßnahmen und keinem Erfolg (UAC Meldung erscheint trotz aller Maßnahmen) nur noch die Deinstallation des Patches.
Dies wiederum kann auch per Empirum geschehen. Dazu habe ich unten eine beispielhafte Deinstallationsroutine angehängt.
Ich drücke Euch die Daumen!
[Product] #CheckWUSA, DONTDELETE #Set:Product, DONTDELETE [CheckWUSA] Set VM_WUSA=%HKLM,"SYSTEM\CurrentControlSet\Services\wuauserv","Start"% If "%VM_WUSA%" == "4" Then "EnableWUSA" EndIf [EnableWUSA] CallHidden sc config "wuauserv" start= demand error= ignore [Set:Product] SET QFE=2918614 Addmeter -1 DEL "%TEMP%\qfe.txt" Callhidden %comspec% /C ECHO %sysdate% %systime% - Searching for installed hotfix: %qfe% >>"%WINDIR%\TEMP\qfe_uninstall.log" Callhidden %comspec% /C wmic.exe qfe >"%TEMP%\qfe.txt" If DoesTextInFileExist ("%QFE%", "%TEMP%\qfe.txt") == "1" Then "UninstallQFE" ELSE "QFEnotExist" EndIf [UninstallQFE] Callhidden %comspec% /C ECHO %sysdate% %systime% - Installed hotfix found: %qfe% >>"%WINDIR%\TEMP\qfe_uninstall.log" Callhidden %comspec% /C ECHO %sysdate% %systime% - Uninstall hotfix: %qfe% >>"%WINDIR%\TEMP\qfe_uninstall.log" CallHidden sc config "wuauserv" start= demand error= ignore Callhidden wusa /uninstall /kb:%QFE% /quiet /norestart Set WusaError=%ErrorLevel% IF %wusaError% == "3010" Then "RebootRequired" EndIf Callhidden %comspec% /C ECHO %sysdate% %systime% - ErrorLevel: %WusaError% >>"%WINDIR%\TEMP\qfe_uninstall.log" Callhidden %comspec% /C wmic.exe qfe >"%TEMP%\qfe.txt" If DoesTextInFileExist ("%QFE%", "%TEMP%\qfe.txt") == "1" Then "SET:InstallationError" EndIf Callhidden %comspec% /C ECHO %sysdate% %systime% - Successfully uninstalled hotfix: %qfe% >>"%WINDIR%\TEMP\qfe_uninstall.log" DEL "%TEMP%\qfe.txt" [QFEnotExist] Callhidden %comspec% /C ECHO %sysdate% %systime% - The following hotfix is not installed: %qfe% >>"%WINDIR%\TEMP\qfe_uninstall.log" [RebootRequired] SetReboot 1 [SET:InstallationError] Callhidden %comspec% /C ECHO %sysdate% %systime% - Failed uninstall hotfix: %qfe% >>"%WINDIR%\TEM\qfe_uninstall.log" ErrorLogMsg %ErrorText% %WusaError% %CallingText% wusa /uninstall /kb:%QFE% /quiet Abort
Setup.inf Beispiel zur Hotfix Deinstallation als Datei: MSHotfix_Uninstall (895 Downloads )