7 Replies Latest reply on Mar 4, 2016 3:20 AM by _Mel_

    Installationsprüfung treibt mich in den Wahnsinn

    mott Apprentice
      Hi zusammen,

      im Prinzip (glaub ich) die Sache mit der Installationsprüfung verstanden zu haben. Grob gesagt, wenn Excel.exe vorhanden ist, muss Office nicht installiert werden! Fertig!

      Das klappt bei einem Großteil meiner Pakete, jedoch nicht bei EScripts bei denen ich vorab einen Registry-Wert abfragen möchte.

      Hier kurz die "Skizze" was ich mache:

      Client-Voraussetzung:

      @Exist('%ProgramFilesDir%\G DATA\AVKClient\AVKCl.exe')


      Bedingung für die Installation festlegen:

      @RegValue('HKEY_LOCAL_MACHINE\SOFTWARE\G DATA\AVKClient','DebugLevel',reUseX64Hive)='0' 


      Bedingungen für die Compliance-Prüfung definieren:

      siehe Bedingung für die Installation.

      Also, um das mal so zu übersetzen, wie ich das verstehe:
      Wenn also GData installiert ist und der REG-Value gleich 0 ist, dann gilt das Paket als ausgeführt und wird im Compliance-Check auf grün gesetzt.

      Fakt ist aber, das tut er nicht! Bei 64-bit-Maschinen führt er dennoch das Paket aus und im anschließenden Compliance-Check prüft er den 32bit-Schlüssel, statt dem 64bit-Schlüssel (inkl WOW6432Node) ab, somit läuft das Paket nicht auf grün, sondern wird lila.

      Achja, das Script sieht folgendermaßen aus:

      If CheckPlatform(cpWinx64)
      RegModifyDWord('HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\G DATA\AVKClient','DebugLevel','0',mrdwSet+reUseX64Hive)/TS
      Else
      RegModifyDWord('HKEY_LOCAL_MACHINE\SOFTWARE\G DATA\AVKClient','DebugLevel','0',mrdwSet+reUseX64Hive)/TS


      Habt ihr dahingehend vielleicht ne Idee, derzeit führe ich aus lauter Verzweiflung das Script ohne die Prüfung aus, das ja auch das macht, was ich will. Aber mir geht es ums Prinzip, vllt. hab ich ja prinzipiell was flasch verstanden¿

      Danke und

      Gruß aus Oberfranken

      mott
        • 1. Re: Installationsprüfung treibt mich in den Wahnsinn
          derniwi Master
          Hallo mott,

          die Bedingung für eine Compliance ist etwas schwieriger. Hiermit kannst Du im Prinzip prüfen lassen, ob das Paket immer noch installiert ist (und ggfs. eine Neuinstalltion erzwingen). Dieser Punkt ist meiner Meinung nach nur da wichtig, wo es um Sicherheit (Virenscanner) geht. Evtl. muss aber noch andere Software vorhanden sein.

          Was damit aber nicht geht, ist alles abzuprüfen. Nur die Existenz einer Datei oder eines Registry-Wertes  hilft ja nicht wirklich. Man kann auch prüfen, ob ein bestimmter Prozess läuft, das ist für einen Virenscanner sicherlich auch ok (sofern der Scanner nicht den Dateinamen der entsprechenden .exe immer wieder ändert, denn das gibt es auch).

          Es gibt dann noch die Prüfung für eine vorhandene Installation, damit kann man die Verteilung einer Software durch DSM überspringen, wenn diese also vorher manuell auf dem Rechner installiert wurde oder wenn auf bestimmten Maschinen eine angepaßte Installation nötig ist (z.B. Office mit PowerPoint auf drei Rechnern, alle anderen brauchen PowerPoint nicht).

          Ich muss leider uzgeben, dass ich bei FrontRange immer noch nicht sicher bin, wann 32 und wann 64 Bit verwendet und geprüft wird. Auch mit den Programm-Verzeichnissen muss ich da immer wieder basteln. Aber das ist unter Windows ja leider auch nicht sooo konsistent. Hast Du mal bei der @RegValue den Haken für die 64-Bit-Prüfung entfernt?

          Evtl. ist es auch sinnvoll, zwei getrennte Pakete für x86 und x64 zu erstellen.

          Gruß
          Nild
          • 2. Re: Installationsprüfung treibt mich in den Wahnsinn
            _Mel_ Master
            wenn die Policyinstanz auf lila geht, dann bedeutet es, das er das paket deinstallieren will, es aber kein uninstall supported.

            warum er es deinstallieren will kann in dem fall zwei gründe haben
            - entweder er will ein reinstall wegen dem fehlgeschlagenen compliancecheck machen, aber das paket unterstützt keinen reinstall
            - oder er will wirklich ein uninstall machen wegen einem fehlgeschlagenen check auf clientvoraussetzungen

            sicher daß es der compliancecheck ist, der fehlgeschlagen ist ?

            BTW:
            wenn du das use64 bit registry flag wegnimmst, dann kannst du dir die if abfrage sparen und brauchst nur eine zeile im script
            ...und microsoft sagt, daß man "Wow6432Node" nicht verwenden soll (auch wenn ich nicht glaube, daß die es sich leisten können das jemals wieder zu ändern)
            • 3. Re: Installationsprüfung treibt mich in den Wahnsinn
              mott Apprentice
              Hi Nils,

              Danke für die umfangreiche Antwort.

              Es baut mich auf, das ich nicht vollkommen verblödet bin ;-) Ich hab das also doch im Prizip alles richtig verstanden :-)

              Im vorliegenden Fall geht es ja nicht um die Verteilung einer Software sondern vielmehr um das ändern eines Reg-Keys dieser Software. Der Wert wurde vom AV-Support gesetzt und kann über die Admin-Kosole nicht zurückgesetzt werden. Auch ganz großes Kino, aber das ist n anderes Thema.

              Das 32- bzw. 64-bit-Ding hab ich bei Programmverzeichnissen ganz gut gebacken bekommen, da nutz ich %ProgramFilesDir% und DSM macht das richtig. (Oft!)

              Ich werd wohl mal wegen dem RegValue-Vodoo mal an Frontrange direkt rantreten.

              Ein zweites Paket (nur für 32-bit) will ich jetzt eigentlich nicht erstellen, das setzen des Schlüssels an der richtigen Stelle fang ich ja im Script selbst ab. Es wäre bloß schön gewesen, die Policy durchgehend grün zu haben, was mit funktionierender Vorabprüfung ja (schneller/schöner) geklappt hätte.

              Gruß aus Oberfranken

              mott
              • 4. Re: Installationsprüfung treibt mich in den Wahnsinn
                Klaus Salger Expert
                Hallo mott,

                der Regkey, den Du prüfen möchtest ist auf x64-Maschinen im x86-Zweig, richtig?

                Dann würde ich erwarten, dass die Prüfung funktioniert wenn Du den x64-Haken bei der IsPreInstalled-Bedingung weg lässt.

                Das gleiche gilt wie Mel schon sagte auch für das Script selbst. Wenn Du immer den x86-Zweig verwenden willst brauchst Du keine Fallunterscheidung - "HKEY_LOCAL_MACHINE\SOFTWARE\G DATA\AVKClient" ist in Deinem Beispiel immer richtig.

                Die DSM Installer-Prozesse sind grundsätzlich IMMER x86-Prozesse, die entsprechend standardmäßig immer die x86-Keys "sehen" und verwenden. Dabei ist es egal ob das System x86 oder x64 ist.
                Nur wenn Du auf x64-Systemen die x64-Variante der Registy adressieren möchtest, dann musst Du das explizit sagen indem Du den x64-Haken setzt.

                Ciao
                  Klaus
                • 5. Re: Installationsprüfung treibt mich in den Wahnsinn
                  mott Apprentice
                  Hi Klaus,

                  Nein der Regkey den ich prüfen möchte (es ist der gleiche, wie der, den ich im Script setze) liegt auf 64bit-Maschinen im x64-bit Zweig, also HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\G DATA\AVKClient.

                  Allerdings hätte mir schon beim Anlegen der Regel auffallen müssen, das DSM da wohl nicht groß unterscheidet, WEIL ich konnte an meiner 64bit-Maschine beim Anlegen direkt zum besagten Schlüssel "druchnavigieren", obwohl der besagte Schlüssel NICHT im 32-bit Zweig liegt (wenn man sich die Sache mit regedit anguckt, ist da nix).

                  Es ist in der Tat so, das DSM da wohl keinen Unterschied macht, es ist der Registry aber tatsächlich getrennt ist.

                  Ein Test, ohne den 64bit-Haken bei der IsPreInstalled-Bedingung verlief auf einem 64bit Rechner erfolgreich, bei den 32bit-Rechner gings ja sowieso.

                  @Mel:

                  Sorry, Dich hat' ich vorhin überlesen. Ja, es scheint, das er einen uninstall machen will, es gibt aber keine Uninstall-Methode. Zu was auch.

                  Danke Euch allen und

                  Gruß aus Oberfranken

                  mott
                  • 6. Re: Installationsprüfung treibt mich in den Wahnsinn
                    Frank.Scholer Master
                    Hallo mott,

                    Nein der Regkey den ich prüfen möchte (es ist der gleiche, wie der, den ich im Script setze) liegt auf 64bit-Maschinen im x64-bit Zweig, also HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\G DATA\AVKClient.



                    Das ist aber der 32-Bit Zweig...

                    Grüße Frank
                    • 7. Re: Installationsprüfung treibt mich in den Wahnsinn
                      derniwi Master

                      Ja, es scheint, das er einen uninstall machen will, es gibt aber keine Uninstall-Methode. Zu was auch.


                      Naja, das Label "$Begin_UninstallScript" sagt nicht aus, dass das Paket deinstallierbar ist oder nicht.
                      Und dieses Label muss auch bei einem deinstallierbaren Paket noch nicht einmal vorhanden sein.

                      Um ein Paket entfernen zu können, muss dieses in den "Eigenschaften" im Abschnit "Software" den Hakebn bei "Deinstallation unterstützen" gesetzt haben.

                      Ach ja, und "Lila" heißt für die "Compliance" "nicht möglich". Das steht ein wenig in der Hilfe dazu drin.