[Gelöst]:Deinstallation von Software funktioniert nicht

Antworten
Benutzeravatar
Thomas_H
Beiträge: 525
Registriert: 09 Jun 2010, 11:57
Wohnort: Havelland

[Gelöst]:Deinstallation von Software funktioniert nicht

Beitrag von Thomas_H »

Hallo allerseits...

ich hab einen Knoten im Kopf (ts... ts... wer mach den SOWAS?) und komme nicht zu einer Lösung. Handbuch und Forum helfen leider nicht weiter.

Softwarepakete, die ich irgendwie mit meinem Halbwissen zusammenschraube, installieren sich ganz toll. Nur wenn ich Software auf dem Client per Remote wieder deinstallieren will, geht einfach garnichts.

Beispiel Mozilla Firefox (gilt auch für andere Softwarepakete, die ich baue)

Mozilla hat eine helper.exe, die liegt im Verzeichnis c:\Programme\Mozilla Firefox\uninstall\helper.exe. Rufe ich die per Hand auf mit dem Parameter /S ist - wen wunderts - Firefox nach Programmende weg.

In dem Paket habe ich eine uninstall.ins mit hineingepackt, die sie wie folgt aus:

Code: Alles auswählen

************************************************************

delsub.ins

************************************************************
; Message at install time:
Message "Deinstalling "+$ProductId$+" ..."

; kill a running firefox
killtask "firefox.exe"

; if firefox uninstall program exists then start it

if FileExists(""+$MozInstallDir$+"\uninstall\helper.exe")
        set $UninstallCommand$ = ""+$MozInstallDir$+"\uninstall\helper.exe"
        set $UninstallCommand$ = '"'+$UninstallCommand$+'" /S'
        WinBatch_start_FirefoxUninstall /WaitSeconds 20
        sub_check_exitcode
endif
; delete registry entry to the current installed version
Registry_delete_current_version
; delete files of current version
if not ($MozInstallDir$ = "")
        Files_copy_deinstall
endif



[WinBatch_start_FirefoxUninstall]
$UninstallCommand$
;%SCRIPTPATH%\sleep 5

[Files_copy_deinstall]
delete -sf "$MozInstallDir$\"

[Registry_delete_current_version]
OpenKey [HKEY_LOCAL_MACHINE\Software\Mozilla\Mozilla Firefox]
set "CurrentVersion" = ""

[sub_check_exitcode]
comment "test for installation success via exit code"
set $ExitCode$ = getLastExitCode
; informations to exit codes see
; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx
; http://msdn.microsoft.com/en-us/library/aa368542.aspx
if ($ExitCode$ = "0")
        comment "looks good: setup program gives exitcode zero"
else
        comment "Setup program gives a exitcode unequal zero: "+$ExitCode$
        if ($ExitCode$ = "1605")
                comment "ERROR_UNKNOWN_PRODUCT  1605    This action is only valid for products that are currently installed."
                comment "Uninstall of a not installed product failed - no problem"
        else
                if ($ExitCode$ = "1641")
                        comment "looks good: setup program gives exitcode 1641"
                        comment "ERROR_SUCCESS_REBOOT_INITIATED 1641    The installer has initiated a restart. This message is indicative of a success."
                else
                        if ($ExitCode$ = "3010")
                                comment "looks good: setup program gives exitcode 3010"
                                comment "ERROR_SUCCESS_REBOOT_REQUIRED  3010    A restart is required to complete the install. This message is indicative of a success."
                         else
                                logError "Fatal: Setup program gives an unknown exitcode unequal zero: "+$ExitCode$
                                isFatalError
                        endif
                endif
        endif
endif

die control sieht wie folgt aus:

Code: Alles auswählen

[Package]
version: 1
depends:
incremental: False

[Product]
type: localboot
id: firefox6
name: Firefox 6
description: Firefox-Browser Ver. 6
advice:
version: 6.0
priority: 0
licenseRequired: False
productClasses:
setupScript: setup.ins
uninstallScript: uninstall.ins
updateScript:
alwaysScript:
onceScript:
customScript:
userLoginScript:

[Changelog]
firefox (6.0-1) testing; urgency=low

  * Initial package
Alles, was passiert ist, dass wenn Firefox wieder aufgewrufen wird, er offensichtlich im "Neu-Zustand" ist, also wieder fragt, ob Einstellungen des Internet-Explodierers übernommen werden sollen.
Aber warum deinstalliert sich Mozilla hier nicht auf Anforderung? Was mach ich da falsch?

Vielen Dank,

Thomas_H
Zuletzt geändert von Thomas_H am 24 Aug 2011, 14:00, insgesamt 1-mal geändert.
Kennst Du schon die WIKI für OPSI-Scripte? Fertige Installationsscripte bekommen und ablegen unter OPSI-Wiki
Aus dem Glashaus :) : UIB bietet auch Schulungen und Supportverträge für Opsi an.
Bild
r.witzel
Beiträge: 74
Registriert: 01 Aug 2011, 14:57
Wohnort: Melle

Re: Deinstallation von Software funktioniert nicht

Beitrag von r.witzel »

Lass dir mal die Werte deiner Variablen ausgeben, bzw. schau sie im Log nach.
Das Script erscheint erst Mal logisch, wobei ich den Parameter erst im WinBatch-Teil übergeben würde.

Das sieht so aus, als ob z.B. der String "$UninstallCommand$" ausgeführt wird statt des eigentlichen Inhalts der Variable.

lG
Carpe Opsi :)
Benutzeravatar
Thomas_H
Beiträge: 525
Registriert: 09 Jun 2010, 11:57
Wohnort: Havelland

Re: Deinstallation von Software funktioniert nicht

Beitrag von Thomas_H »

Herrje...

das Problem ist gelöst. Woran lag es? Dass ich einfach nicht die Zusammenhänge begriffen hatte, wie die einzelnen Dateien setup.ins, delsub.ins und uninstall.ins zusammenhängen und das trotz Lesens der Doku und Suchen im Forum. Die Profis können ab hier aufhören zu lesen...

Mal abgesehen davon, dass ich auch Variablenfehler drin hatte (zT. nicht definierte Variablen) hatte ich die delsub.ins als Deinstallationsroutine drin... :( *Pappnase aufsetz*

Meine Gedankengänge waren dahingehend falsch, dass ich immer davon ausgegangen bin, dass die delsub.ins auch die Deinstallation der Software durchführt, bzw. die setup.ins zwischen Installation und Deinstallation unterscheidet und dem entsprechend die Wege beschreitet. Tja.... ein Blick in die Templates auf http://download.uib.de/opsi4.0/products/localboot/ hätten da vielleicht mehr Klarheit bringen können (oder auch nicht, wenn ich die Zusammenhänge nicht verstehe). Für alle die nun denken ("mann bist Du blöd... Du sollst doch mal Dein Verstand benutzen. Schau mal in die Scripte..."), nun ich spreche nur sehr gebrochen winst und das auch nur, weil ich schon andere Programmiersprachen gebrochen spreche...

Da ich es auch für eigene Zwecke mal zu Bild gebracht habe, stelle ich das Ergebnis für andere, denen es genauso geht wie mir hier mal zur freien Verfügung (und Weiterverbreitung, durchaus auch in der Opsi-Doku).

Bild

Diese Grafik sollte eigentlich selbsterklärend sein. Sollte hier was falsch sein, bitte ich um Benachrichtigung, ist mit Visio erstellt. Falls jemand das File möchte ebenfalls bitte mal IM...

Gruß

Thomas_H
Kennst Du schon die WIKI für OPSI-Scripte? Fertige Installationsscripte bekommen und ablegen unter OPSI-Wiki
Aus dem Glashaus :) : UIB bietet auch Schulungen und Supportverträge für Opsi an.
Bild
Antworten