Seite 1 von 1

Alle Softwareversionen anhand Produktkennung deinstallieren

Verfasst: 21 Aug 2012, 14:31
von pheanex
Ich wüsste gerne euren Rat/Vorgehensvorschlag zum deinstallieren einer bestimmten Windows-software jeglicher version/sprache/...

Betrachten wir als Fallbeispiel zb. den Adobe Reader.
Ich möchte gerne ein Paket erstellen, welches mir zb. in einer SubUninstall.ins (welche ich dann auch vor der installation in der setup.ins aufrufen würde)
jegliche Versionen des Adobe Readers entfernt.
Wenn ich mir wiki/userspace:adobe_reader_x -> SubUninstall ansehe, werden hierbei lediglich spezielle Varianten(jedoch in unterschiedlichen versionen) deinstalliert.
Wenn man sich die Produktkennungen im Detail ansieht -> Kapitel 1.7.1 http://kb2.adobe.com/cps/837/cpsid_8370 ... ration.pdf
Ist die GUID ja folgendermassen aufgebaut:
<product family>-<Reader>-<language code>-<product type>-<license type><major version><major minor version><minor minor version>
AC76BA86-7AD7-1033-7B44-A70500000002
Dann müsste ich nun, um mein Ziel zu erreichen in der Registry nach folgenden Ausdrücken suchen:
AC76BA86-7AD7-XXXX-XXXX-XXXXXXXXXXXX

Das Opsi-Winst-Manual http://download.uib.de/opsi4.0/doc/opsi ... ual-de.pdf -> Kapitel 7.3.7 bietet mir jedoch nicht so recht die Möglichkeiten alle Subschlüssel in der Registry für einen bestimmten Pfad auszugeben, bzw. eine String(RegEx)-matching Funktion.

Nun seid ihr dran. Ist mein Ansatz schon falsch, oder wie macht ihr das?
An die Opsi-Profis: Gibt es sonst noch irgendwelche Funktionen die ich übersehe, bzw. mich zum Ziel führen?
Die Motivation kommt ja daher, dass ich beim Setup gerne fehler umgehen möchte, welche entstehen würden, wenn bereits eine alte Version installiert ist und die neue darüber installiert werden soll. Bzw. den Wunsch nach einer sauberen komplett-deinstallation einer bestimmten Software mit allen versionen.

Re: Alle Softwareversionen anhand Produktkennung deinstallie

Verfasst: 21 Aug 2012, 18:27
von d.oertel
Hi,

bei dem Ansatz musst Du beachten, das nicht jede GUID so aufgebaut ist.
siehe auch: https://de.wikipedia.org/wiki/Globally_ ... Identifier

Der nächste opsi-winst 4.11.3.2 kennt den gewünschten Befehl wie z.B. getRegistryKeyList32(<regkey>)
Zur Zeit unter experimental zufinden und wandert demnächst über testing nach stable.
http://download.uib.de/opsi4.0/experimental/opsi402-2/
http://download.uib.de/opsi4.0/experime ... 3.2-1.opsi

Aufwendigere Variante:
keys per DosInAnIcon per reg Befehl in eine Datei exportieren und von da einlesen.
Das kann man im swaudit script sich anschauen.

gruss
d.oertel

Re: Alle Softwareversionen anhand Produktkennung deinstallie

Verfasst: 23 Aug 2012, 14:10
von pheanex
Vielen Dank für die Antwort.
Klar muesste man dann das Script für jede GUID extra anpassen,
jedoch finde ich diese Lösung des: erst alle möglichen Versionen einer software deinstallieren, bevor ich eine neue Version installiere eine doch recht saubere.
Wenn ich mir die bisherigen setup-scripte (vorallem auf der Community-seite) so ansehe wird das ja bisher nicht gemacht, was dann wrsh. zu vielen unbemerkten fehlern(wegen den silent-schaltern bei den setups) führen dürfte?
Die Variante mit dem DosInAnIcon habe ich kurz angefangen, aber dann doch sein lassen, da es mir doch als sehr umständlich erscheint und ich einfach nicht mit batch-syntax zurechtkommen mag.
Dann doch auf die ersehnte Funktion "getRegistryKeyList32(<regkey>)" warten, bis sie in stable ist...

Re: Alle Softwareversionen anhand Produktkennung deinstallie

Verfasst: 23 Aug 2012, 18:47
von tobias
pheanex hat geschrieben: Wenn ich mir die bisherigen setup-scripte (vorallem auf der Community-seite) so ansehe wird das ja bisher nicht gemacht, was dann wrsh.
Das liegt denke ich daran das das Ziel sein sollte Software AUSSCHLIEßLICH über OPSI zu installieren. Das ist natürlich in einer bestehenden Umgebung nicht ganz einfach.
Wir rollen desswegen den Client auch nicht direkt auf alle clients aus sondern fügen nach und nach neue zu OPSI hinzu - bevorzugt wird der PC vorher neuinstalliert. Oder installieren den ClientAgent bei bedarf nachträglich auf dem Rechner.
Bisher gabs dabei keine Probleme wegen alten Versionen :)
Desswegen finde ich es aktuell auch gut das OPSI keine Handinstallationen in der Liste als Installed markiert. Automatisch geupdated wird nur das was auch per OPSI mal installiert wurde.

Wenn ich jez jede mal irgendwann Installierte Version berücksichtigen müsste würde OPSI mehr Arbeit machen als alle Clients ohne OPSI zu managen.