Hallo nils,
die funktion der kryptischen Zeichenkette war mir schon bekannt, kannte nur den Bezeichner "Produktkennung" nicht.
mit "msiexec /x xyz" deinstalliere ich bisher auch schon. Ich kannte nur den alternative Reg-Pfad "Wow6432Node" auch noch nicht.
Vorallem da in SubUninstall.ins
wiki/userspace:adobe_reader_x auch nur in einem der beiden Pfade gesucht wird.
Meine geupdatete Version:
Code: Alles auswählen
;Variable for msiexec-call of deinstallation
DefVar $UninstallCommand$
DefVar $InterestingFile$
;Variable for the diffrent versions gotten from the registry
DefVar $DisplayName$
DefVar $DisplayName1$
DefVar $DisplayName2$
;Deinstalling Adobe Reader 9.3.1 - 9.3.4, if found in the Registry
Set $DisplayName1$ = GetRegistrystringvalue32("[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-7AD7-1031-7B44-A93000000001}] DisplayName")
Set $DisplayName2$ = GetRegistrystringvalue32("[HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-7AD7-1031-7B44-A93000000001}] DisplayName")
if not ($DisplayName1$ = "" AND $DisplayName2$ = "")
Message "Deinstalliere "+$DisplayName$
set $UninstallCommand$ = "MsiExec.exe /x {AC76BA86-7AD7-1031-7B44-A93000000001} /qb-! REBOOT=ReallySuppress"
Winbatch_Uninstall
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
;Deinstalling Adobe Reader 9.4.0, if found in the Registry
Set $DisplayName1$ = GetRegistrystringvalue32("[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-7AD7-1031-7B44-A94000000001}] DisplayName")
Set $DisplayName2$ = GetRegistrystringvalue32("[HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-7AD7-1031-7B44-A94000000001}] DisplayName")
if not ($DisplayName1$ = "" AND $DisplayName2$ = "")
Message "Deinstalliere "+$DisplayName$
set $UninstallCommand$ = "MsiExec.exe /x {AC76BA86-7AD7-1031-7B44-A94000000001} /qb-! REBOOT=ReallySuppress"
Winbatch_Uninstall
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
;Deinstalling Adobe Reader 10.0.x, if found in the Registry
Set $DisplayName1$ = GetRegistrystringvalue32("[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-7AD7-1031-7B44-AA0000000001}] DisplayName")
Set $DisplayName2$ = GetRegistrystringvalue32("[HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-7AD7-1031-7B44-AA0000000001}] DisplayName")
if not ($DisplayName1$ = "" AND $DisplayName2$ = "")
Message "Deinstalliere "+$DisplayName$
set $UninstallCommand$ = "MsiExec.exe /x {AC76BA86-7AD7-1031-7B44-AA0000000001} /qb-! REBOOT=ReallySuppress"
Winbatch_Uninstall
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
;Deinstalling Adobe Reader 10.1.x, if found in the Registry
Set $DisplayName1$ = GetRegistrystringvalue32("[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-7AD7-1031-7B44-AA1000000001}] DisplayName")
Set $DisplayName2$ = GetRegistrystringvalue32("[HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-7AD7-1031-7B44-AA1000000001}] DisplayName")
if not ($DisplayName1$ = "" AND $DisplayName2$ = "")
Message "Deinstalliere "+$DisplayName$
set $UninstallCommand$ = "MsiExec.exe /x {AC76BA86-7AD7-1031-7B44-AA1000000001} /qb-! REBOOT=ReallySuppress"
Winbatch_Uninstall
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
Linkfolder_Custom
[Winbatch_Uninstall]
$UninstallCommand$
[Linkfolder_Custom]
;Delete Startmenu-Link
Set_basefolder common_programs
Set_subfolder ""
delete_element "$ProductName$"
Eine letzte Frage zum Schluss noch, bevor das Problem endgültig im Archiv verschwindet:
Sind die beiden Schlüssel "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" und "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
tatsächlich die einzigen Möglichkeiten an denen sich die Produktkennungen für sämtliche installierte Software sowohl auf XP als auch Vista und 7-Rechnern befinden können.
Dann müsste ich im Script nur diese Pfade absuchen, ohne dass mir ein Uninstaller durch die Finger gleitet.
Oder gibt es auch noch andere Orte in der Registry?
Bonusfrage: Hat jemand eine Adresse zu allen Adobe-Reader Produktkennungen? Ich habe naemlich gerade beim durchgehen unserer Softwareaudits festgestellt, dass manche Adobe Versionen (Ich vermute Englische (andere Sprachen als Deutsch)) wiederrum andere Produktkennungen haben, welche mir ja dann beim obigen Skript nicht erkannt werden würden. (Zb: AC76BA86-7AD7-
1033-7B44-AA1000000001 ist Auch Adobe Reader 10.1.3)
OK: Konnte mir meine Fragen selbst beantworten.
http://kb2.adobe.com/cps/837/cpsid_8370 ... ration.pdf Abschnitt 1.7.1
Viele Grüße und Dank zum arbeitsreichen Dienstag,
PHeanEX