Seite 1 von 1

[Gelöst]:Deinstallation von Software funktioniert nicht

Verfasst: 19 Aug 2011, 11:30
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

Re: Deinstallation von Software funktioniert nicht

Verfasst: 23 Aug 2011, 14:47
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

Re: Deinstallation von Software funktioniert nicht

Verfasst: 24 Aug 2011, 13:59
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