5 Replies Latest reply on Oct 14, 2011 6:22 AM by NVUser

    MSI und MSP Dateien nicht „per Service“ installieren

    NVUser Specialist
      Hallo mal wieder,

      ich habe ein Verständnisproblem. Und zwar fiel mir jetzt erst auf, daß bei einer Installation eines MSI oder MSP mittels entsprechendem MSI-Befehlen (MSIInstallProduct bzw. MSIApplyPatch) das ganze bei einem normalen User auch als „Computerbezogen“ und nicht extra als „Computerbezogen per Service“ installiert werden kann und damit dann auch unter Win7 das jeweilige Statusfenster der Installation angezeigt wird. Letzteres sogar (standartmäßig?) im Passive-Mode, also ohne das extra ein MSI-Schalter dafür angegeben werden muß, wie z.B. /qn oder /passive o.ä.. Genau dieser Passive-Mode gefällt mir und so will ich das auch haben, wenn eine Installation läuft. Der User soll sehen das was passiert, aber nicht die Möglichkeit haben, mal aus Spaß auf Abbrechen zu klicken, und sich dann dumm zu stellen, nach dem Motto „bei mir hat die Installation nicht funktioniert...“.
      So weit, so gut.
      Nun frage ich mich allerdings, wieso das MSI nicht extra als „Service“ geflaggt installiert werden muß, wenn der angemeldete User kein Admin ist? Woher kommen die Installationsrechte?
      Bisher hatte man ja unter XP auch die Möglichkeit, diverse Statusfenster anzeigen lassen zu können, auch wenn man „als Service“ installiert. Ich weiß, warum das mit der Anzeige unter Win7 nicht mehr geht. Bis dato hatte ich auch gerne den Execute-Befehl benutzt und „per Service“ incl. quite- oder passive-Parametern installieren lassen. Seit Win7 muß ich immer auf den RunAs-Befehl ausweichen, wenn ich ein Statusfenster will, was mir nicht immer zusagt, denn z.B. muß ich da eine feste max. Installationsdauer angeben. Der Execute-Befehl wartet eben, bis der Aufruf beendet ist und die ex-Variante hat eben auch die äußerst nützliche Möglichkeit, ggf. einen Errorcode auswerten zu können...

      Also lange Rede - kurzer Sinn, wieso kann ich MSI-Befehle als normaler User ohne Service starten und wieso kann man das Anzeige-Verhalten nicht auch wieder dem Execute-Befehl beibringen? - Session 0 Isolation hin oder her...

      Danke schon mal für das Knoten lösen!

      Torsten
        • 1. Re: MSI und MSP Dateien nicht „per Service“ installieren
          NVUser Specialist
          Hier gibt es doch sicher einige, die wissen, warum sich das wie oben beschrieben verhält... ich verrate es dann aber weiter...
          • 2. Re: MSI und MSP Dateien nicht „per Service“ installieren
            NicoS1 Master
            Also, ich muß ehrlich sagen, dass es mich wundert, dass es so funktioniert.

            Seit der v6 hatte ich immer wieder Probleme mit Berechtigungen, wenn ein MSI nicht als Service geflaggt war. Kam auch noch etwas auf die Software drauf an, aber trotzdem...

            Ich vermute mal, er erkennt es automatisch, und gibts dann an den SIS weiter, bzw. der SIS kümmert sich um eventuelle UAC abfragen.

            Ein paar Ergänzungen hab ich trotzdem, bzw. Vorschläge:

            "Letzteres sogar (standartmäßig?) im Passive-Mode"
            Ich glaube dazu gibts eine Einstellung in der Infrastrukturkonfiguration. Windows Installer Fenster immer verstecken oder so ähnlich.

            Ich dachte eigentlich, dass der AutoInstaller und Software Shop den Statusbalken vom Windows Installer abfangen, und im AutoInstaller anzeigen.

            Dementsprechend, sollte es im Software Shop ja kein Problem sein, und für den AutoInstaller, setzt du einfach einen ShowUI Befehl vor den MsiInstallProduct. Jetzt musst nur noch verhindern, dass das Paket vom ServiceInstaller angepackt wird, in dem du es auf "Nur wenn Benutzer angemeldet ist" stellst.

            Dann hast du deinen Statusbalken... und eigentlich um eines schöner, weil du Dinge wie "Beschreibung" pflegen kannst die dem User angezeigt wird, oder aber "geschätzte Installationsdauer" usw.

            Der Schalter um den Abbrechen Button nicht anzeigen zu lassen ist im übrigen /qb!... /qb!- wenn du noch modale Dialoge unterbinden willst.

            Und Errorcoded werden vom MsiInstallProduct ja auch abgefangen und dementsprechend ein korrekter Policystatus angezeigt.
            • 3. Re: MSI und MSP Dateien nicht „per Service“ installieren
              NVUser Specialist
              Hi Nico,

              Also, ich muß ehrlich sagen, dass es mich wundert, dass es so funktioniert.

              ...mich eben auch…

              Aber vielleicht hast Du ja Recht mit dem SIS, das könnte das Verhalten erklären, danke für Deine Antwort.

              Und ansonsten bin ich zufrieden mit der Statusanzeige, so wie sie ist. Der Passive-Modus funktioniert ja genauso wie ich’s will. Wegen der Rückgabe des Errorcodes gefällt es mir halt besser, wenn ich eigene (verständlichere) Meldungen in der Konsole hinterlegen kann, oder kann man bei einer msi-Install pauschal auch den Errorcode mit einer IF-Abfrage und %errorlevel% o.ä. festhalten?

              Torsten
              • 4. Re: MSI und MSP Dateien nicht „per Service“ installieren
                info@offlimits-it.com Expert
                Wenn Ihr den ECN macht gibt es dort eine Frage die sinngemäß lautet: Welche zusätzlich Funktionalität stellt der  Befehl MSIInstallproduct zur Verfügung?

                Eine der korrekten Antworten ist
                Der Befehl setzt bei Ausführung des MSI Paketes im Benutzerkontext dynamisch eien lokale Windows Policy, die die Ausführung des MSI Paketes ohne administrative Berechtigungen erlaubt.

                Ich denke das erklärt das Verhalten
                • 5. Re: MSI und MSP Dateien nicht „per Service“ installieren
                  NVUser Specialist
                  Manchmal sind Zertifizierungen halt doch nicht zu mißachten... Danke!