2 Replies Latest reply on Apr 18, 2016 12:57 AM by derniwi

    MSIReInstallProduct: Äquivalent von MSIExec?

    derniwi Master
      Hallo zusammen,

      weiß jemand, welches Äquivalent von MSIExec hier verwendet wird? Mir ist klar, dass hier verschiedene Parameter möglich sind, die über "/f" angetriggert werden.

      Aber gibt es hier weitere Punkte, die DSM generell setzt so wie z.B. REBOOT=ReallySupress?

      Hintergrund: ich habe ein Paket, bei welchem durch eine Neuinstallation mittels MSIReInstallProduct ein automatischer Neutstart durchgeführt wird, ohne dass man diesen noch abfangen kann. Also entsprechend dem MSIExec-Returncode 1641.

      Bei der Installation über MSIInstallProductEx habe ich schon REBOOT=ReallySupress angegeben. Alternativ kann ich das MSI erst deinstallieren, prüfen, ob ein Neustart ansteht und dann wieder installieren. Und mit DSM 2015.2 ginge das auch noch relativ einfach über den Software-Eigenschaften, wenn man dort die Unterstützung für Reparatur und Reinstallation entfernt.

      Danke und Gruß
      Nils
        • 1. Re: MSIReInstallProduct: Äquivalent von MSIExec?
          _Mel_ Master
          da wird letztlich nur die MsiReinstallProduct funktion der windows api aufgerufen
          https://msdn.microsoft.com/en-us/aa370375
          man beachte, daß die doku zu dieser funktion nichts von einem reboot erwähnt.
          es wäre jetzt interessant zu wissen welcher rückgabewert da genau kam, denn wenn die meldung "Successfully reinstalled product %xyz. Requested a reboot." kommt, dann war der rückgabewert entweder reboot initiated oder reboot required - und zumindest bei reboot required wäre es keineswegs zwingend sofort einen reboot zu machen
          ...wobei es in dem fall durchaus funktionieren könnte den reboot zu canceln, denn den macht dann ja nur der installer und der läßt mit sich reden.
          • 2. Re: MSIReInstallProduct: Äquivalent von MSIExec?
            derniwi Master
            Hallo Mel,

            im MSi-Protokoll war irgendwo eine 1641 zu finden, so wie man diesen Wert auch von MSIExec kennt - klar, DSM nutzt ja hier die API...

            Ich habe mittlerweile gesehen, dass je nach Einstellungen im DSM-Dialog bei den Befehlen die entsprechenden Parameter wie bei MSIExec gesetzt werden, wenn man ein Paket "für alle Benutzer" verteilt, wird dann ALLUSERS=1 mitgegeben. Das finde ich im Protokoll. Aber ein REBOOT=ReallySuppress finde ich nie, wenn ich es nicht angebe.

            Gruß
            Nils