14 Replies Latest reply on Sep 13, 2012 1:30 AM by derniwi

    Probleme mit msiexec /x

    SitzRieSe Expert
      Hi Zusammen,

      ich bin gerade dabei unseren TrendMicro Client zu verskripten. Hier habe ich Schwierigkeiten bei der Deinstallation und benötige da mal eure Hilfe, weil ich nicht so genau verstehe was enteo hier tut.

      Problemstellung, der Client ist für eine Deinstallation Passwort geschützt und muss mit einem Parameter gefüttert werden damit die Deinstallation funktioniert, daher fällt der MSIUninstallProduct Befehl leider aus.

      Ich habe dann versucht unter $BeginUninstallScript den Befehl ExecEx zu nutzen, leider versucht er hierbei schon den MSIInstallProduct umzudrehen und fällt auf die Nase. Daher sieht mein Skript nun so aus:

      If CheckInstallMode(imUninstall)
      ! ExecuteEx('%windir%\system32\msiexec.exe /x .\Extern$\Msidata\Officescan.msi uninstall_password=*** /passive','','5')/?/TS
      RunAs('%windir%\system32\msiexec.exe ','/x .\Extern$\Msidata\Officescan.msi uninstall_password=*** /passive','','','',raUseSisAccount+UndoneContinueParentScript)
      Else
      MSIInstallProduct('.\Extern$\Msidata\Officescan.msi','NORMAL',MsiInstMach)
       
        params:
      EndProc
      ExitProc(Done)


      Wie ihr sehen könnt habe ich nun schon den RunAs Befehl ausprobiert. Leider funktioniert das Skript sowohl mit dem ExecEx als auch mit dem RunAs Befehl nicht.

      Im Log stellt sich das ganze so dar:

      15:28:42.069 2        ---->Starting uninstallation of "Trendmicro Officescan 10.6.2108"

      15:28:42.069 1        Evaluating condition "CheckInstallMode(imUninstall)"
      15:28:42.069 2        Condition TRUE  -> entering IF part

      15:28:42.069 2        ->  RunAs('C:\Windows\system32\msiexec.exe ','/x D:\Daten
      etinst\RepositoryCache\37908\rev\1\Extern$\Msidata\Officescan.msi uninstall_password=*** /passive','','','',raUseSisAccount+UndoneContinueParentScript)
      15:28:42.069 2        else - Skipping ELSE part
      15:28:42.069 2        Skipping command : MSIInstallProduct


      15:28:42.069 2        -> ExitProc(Done)

      15:28:42.084 2        nilsPipe: ->Routing uninstallation of wksta-part to service

      15:28:42.084 2         nilsPipe: NPI: Initializing Runtime - Manager ..
      15:28:42.115 1         nilsPipe: Setting active Server project to 'db:master\Trendmicro Officescan 10.6.2108'
      15:28:42.115 2         nilsPipe: NPI: Performing wksta part of uninstall for db:master\Trendmicro Officescan 10.6.2108
      15:28:42.115 2         nilsPipe: NPI: Removing wksta part uninstall info from registry
      15:28:42.115 2         nilsPipe: NPI: WkSta part done.
      15:28:42.115 1         nilsPipe: Setting active Server project to '(null)'
      15:28:42.115 2         nilsPipe: NPI: xniFPS: '{8C24B4B6-1636-493D-9915-E3F69820E72E}' is installed
      15:28:42.115 2         nilsPipe: ---> Service part of uninstall complete...
      15:28:42.115 1        Doing user part of file uninstall...
      15:28:42.115 2        xniFPS: '{8C24B4B6-1636-493D-9915-E3F69820E72E}' is uninstalled

      15:28:42.115 2        ---->Uninstallation of Trendmicro Officescan 10.6.2108 complete.


      Laut dem Log scheint er den Befehl auszuführen, allerdings werden an dem Client keine Änderungen durchgeführt. Wenn ich den Befehl 1:1 aus dem Log kopiere und in die Eingabeaufforderung eingebe, funktioniert die Deinstallation ohne Probleme.

      Hat jemand eine Idee woran das liegen kann?
        • 1. Re: Probleme mit msiexec /x
          AlexanderDechent Apprentice
          Hi SitzRieSe,

          ist "uninstall_password" eine Public-Property des MSIs? Dann müsste sie glaube ich in Großbuchstaben sein.
          Ansonsten würde ich das MSI-Log mal mitschreiben lassen, so findet man das Problem meist ganz gut. Dazu einfach an die cmdline noch "/l*v %logfile%" anhängen (logfile= dein Pfad und Logdateiname).

          Viele Grüße,
          Alex
          • 2. Re: Probleme mit msiexec /x
            SitzRieSe Expert
            Hi,

            Danke für deine Antwort! nein das uninstall_password ist keine Public Property, die gibs nur bei der TrendMicro MSI. Ja das Problem ist ja das er quasi garnichts macht, im Log steht zwar das er den Befehl ausführt, tut es aber nicht. In den Prozessen blitzt der msiexec Dienst nicht mal auf...

            Ich habe es jetzt mit einer .bat Datei versucht. Diese wird ebenfalls nicht ausgeführt. Gibt es hier ein Softwarebug?
            • 3. Re: Probleme mit msiexec /x
              CalumField1 Expert

              Hi,

              Danke für deine Antwort! nein das uninstall_password ist keine Public Property, die gibs nur bei der TrendMicro MSI.

              Ich habe es jetzt mit einer .bat Datei versucht. Diese wird ebenfalls nicht ausgeführt. Gibt es hier ein Softwarebug?



              Schreibe bitte uninstall_password in Großbuchstaben. uninstall_password ist ein Public Property von der Trendmicro MSI. Public Property bedeutet, dass diese MSI Property mit der Kommandozeile geändert werden kann.
              • 4. Re: Probleme mit msiexec /x
                SitzRieSe Expert
                Hi Calum,

                okay... ich kann das gerne in Großbuchstaben setzen, das wird aber keine Änderung bringen, da der Befehl ja so funktioniert wenn ich Ihn unter Windows via cmd ausführe.

                ich habe den Befehl wie beschrieben schon in eine .bat Datei kopiert, die bat Datei wird nicht mal gestartet, für mich sieht das nach einem Fehler der enteo v6 aus.

                Im Log liest es sich so:

                14:28:00.249 2        ---->Starting uninstallation of "Trendmicro Officescan 10.6.2108"

                14:28:00.249 1        Evaluating condition "CheckInstallMode(imUninstall)"
                14:28:00.249 2        Condition TRUE  -> entering IF part

                14:28:00.249 2        ->  ExecuteEx('D:\Daten
                etinst\RepositoryCache\37908\rev\1\Extern$\Msidata\uninstall.bat','','5')/?
                14:28:00.249 2        else - Skipping ELSE part
                14:28:00.249 2        Skipping command : MSIInstallProduct


                14:28:00.249 2        -> ExitProc(Done)

                14:28:00.249 2        nilsPipe: ->Routing uninstallation of wksta-part to service

                14:28:00.249 2         nilsPipe: NPI: Initializing Runtime - Manager ..
                14:28:00.296 1         nilsPipe: Setting active Server project to 'db:master\Trendmicro Officescan 10.6.2108'
                14:28:00.296 2         nilsPipe: NPI: Performing wksta part of uninstall for db:master\Trendmicro Officescan 10.6.2108
                14:28:00.296 2         nilsPipe: NPI: Removing wksta part uninstall info from registry
                14:28:00.296 2         nilsPipe: NPI: WkSta part done.
                14:28:00.296 1         nilsPipe: Setting active Server project to '(null)'
                14:28:00.311 2         nilsPipe: NPI: xniFPS: '{8C24B4B6-1636-493D-9915-E3F69820E72E}' is installed
                14:28:00.311 2         nilsPipe: ---> Service part of uninstall complete...
                14:28:00.311 1        Doing user part of file uninstall...
                14:28:00.311 2        xniFPS: '{8C24B4B6-1636-493D-9915-E3F69820E72E}' is uninstalled

                14:28:00.311 2        ---->Uninstallation of Trendmicro Officescan 10.6.2108 complete.

                Auf den Client passiert aber rein garnichts! Ich habe in der .bat eine Pause ans Ende gesetzt und es ist kein Fenster und kein Prozess ersichtlich.

                Noch als Info, ich teste die Installation und Deinstallation über den Softwareshop.
                • 5. Re: Probleme mit msiexec /x
                  CalumField1 Expert


                  14:28:00.249 2        ->  ExecuteEx('D:\Daten
                  etinst\RepositoryCache\37908\rev\1\Extern$\Msidata\uninstall.bat','','5')/?



                  Da ist der Fehler. Es sollte heissen :

                  ExecuteEx('.\Extern$\Msidata\uninstall.bat
                  • 6. Re: Probleme mit msiexec /x
                    SitzRieSe Expert
                    Mh seh jetzt nicht genau was du meinst. Wenn du den Leerschritt meinst, der wird hier irgendwie im Forum beim posten hinzugefügt... Steht aber so nicht im Log.

                    Mein Script sieht so aus:

                    If CheckInstallMode(imUninstall)
                    ExecuteEx('.\Extern$\Msidata\uninstall.bat','','5')/?
                    Else
                    MSIInstallProduct('.\Extern$\Msidata\Officescan.msi','NORMAL',MsiInstMach)
                     
                      params:
                    EndProc
                    ExitProc(Done)
                    • 7. Re: Probleme mit msiexec /x
                      CalumField1 Expert
                      Meine Fehler Sorry. Gibt es einen Grund warum du $BeginUninstallSkript nicht benutzt?
                      • 8. Re: Probleme mit msiexec /x
                        SitzRieSe Expert
                        Ja weil er bei $BeginUninstallScript als erstes versucht den MSIInstallProduct Befehl umzukehren, was zu einem Fehler führt, da das Passwort hier nicht mitgegeben wird.

                        Gruß

                        SitzRieSe
                        • 9. Re: Probleme mit msiexec /x
                          SitzRieSe Expert
                          Also ich komm hier irgendwie an meine Grenzen. Hat noch niemand dieses Problem mit der v6 gehabt? Ich habe das eScript jetzt nochmal komplett neu erstellt und egal was ich mache, er führt keinen Execute und keinen RunAs Befehl aus der unter If Abfrage steht.
                          • 10. Re: Probleme mit msiexec /x
                            derniwi Master
                            Hallo,

                            ändere das Skript mal so, dass MSIInstallProduct nur bei der Installation verwendet wird. Dann wird das später nicht umgedreht, und dann auch den Uninstall-Label verwenden, also ungefähr so:
                            If not CheckInstallMode(imUninstall)
                            MSIInstallProduct('.\Extern$\Msidata\Officescan.ms i','NORMAL',MsiInstMach)

                            params:
                            EndProc
                            ExitProc(Done)

                            :BeginUninstallScript:
                            ExecuteEx('.\Extern$\Msidata\uninstall.bat','','5' )/?


                            Und dann solltest du bei ExtecuteEx auch den msiexec-Befehl direkt angeben können.

                            Gruß
                            Nils
                            • 11. Re: Probleme mit msiexec /x
                              SitzRieSe Expert
                              Hi derniwi,

                              danke! Das war die rettende Idee. Es funktioniert! Darauf bin ich irgendwie nicht gekommen die If Abfrage umzudrehen. Für mich sieht das aber insgesamt wirklich nach einem Fehler der enteo v6 aus, da es ja andersrum von der Logik her auch funktionieren hätte müssen.

                              Danke dir!
                              • 12. Re: Probleme mit msiexec /x
                                derniwi Master
                                Naja, eigentlich ist das so schon klar.
                                Bei der Installation protokolliert das System, was gemacht wurde. Bei der autom. Deinstallation werden die Befehle, sofern es geht, umgekehrt. Das funktioniert aber leider nicht mit allen Befehlen. Um hier ein paar mehr Möglichkeiten zu haben, gibt es eben das Standard-Label ":$BeginUninstallScript". Dieses wird automatisch angesprungen, wenn ein Paket entfernt wird. Weiterhin werden die umkehrbaren Befehle der Installation für die Entfernung des Paketes protokolliert und nach dem BeginUninstallScript ausgeführt (oder davor? muss ich nochmal schauen...). Aber leider klappt diese Kombination eben nur in bestimmten Fällen, so dass man dann schon etwas tricksen muss, um eine saubere Installation und eine saubere Entfernung hinzubekommen.

                                Und als Kür kommt dann noch die erneute Installation sowie die Reparatur dazu... das ist alles nicht so toll. Aber die anderen Installationsroutinen wie GPO usw sind hier ja auch nicht besser.

                                Schön wäre es, wenn bei der Erstellung eines Paketes eine Möglichkeit vorhanden wäre, automatisch ein ausführliches Entfernen-Skript zu generieren, welches man dann später anpassen kann. Ich kämpfe selbst gerade mit einem Skript und ein paar Logiken, die ich nicht so schön automatisiert bekomme, wie ich mir das wünsche.

                                Aber wenn ich dir helfen konnte, freut mich das.

                                Gruß
                                Nils
                                • 13. Re: Probleme mit msiexec /x
                                  DSMForum Master
                                  Hi Leute,

                                  ich hab seit einiger Zeit heftige Probleme mit meinem A4,
                                  sobald sich das ABS system einschaltet stirbt der Motor ab .
                                  Leider haben die Audi KFZ Mechaniker auch keinen Schimmer woran das liegen konnte und das Steuergerat hat keinen fehler ausgespuckt.

                                  Gru?e Chris
                                  • 14. Re: Probleme mit msiexec /x
                                    DSMForum Master
                                    Hi Leute,

                                    ich hab seit einiger Zeit heftige Probleme mit meinem A4,
                                    sobald sich das ABS system einschaltet stirbt der Motor ab .
                                    Leider haben die Audi KFZ Mechaniker auch keinen Schimmer woran das liegen konnte und das Steuergerat hat keinen fehler ausgespuckt.

                                    Gru?e Chris