7 Replies Latest reply on Dec 6, 2013 9:56 AM by Frank.Scholer

    Registryschlüssel auf Inhalt überprüfen

    HyP3r Apprentice
      Hallo Leute,

      ich bin gerade an der erstellung eines .NET Framework 1.1 Service Pack 1 Pakets.

      Am anfang von dem eScript will ich überprüfen ob das Paket bereits installiert wurde.

      Installliert ist diese Software wenn der Registry Schlüssel

      HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322

      das Attribut SP den wert 0x1 hat.

      Mit den herkömmlichen Mitteln von NetInstall/Enteo kann ich aber nur prüfen ob der Registry Key überhaupt existiert oder nicht. Nicht aber den Inhalt.

      Wie würdet ihr das abprüfen?

      mfg
      HyP3r
        • 1. Re: Registryschlüssel auf Inhalt überprüfen
          Michi Expert
          Hi,

          du könntest z.B. folgendes machen:

          1. RegReadValueEx
          Dort wählst Du den entsprechenden Key, und lässt den Wert in eine Variable schreiben. Bei dem Feld Variablenname aber keine % angben.
          Also z.B. nur netversion
          2. Eine IF Abfrage auf die Variable
          IF%netversion%='0x1'
          3. ExitProc(Done)

          Danch dann das normale Setup starten.
          Wenn Du noch ein anderes Merkmal bei Paketen hast, wäre eine IsInstalled Bedingung meiner Meinung nach die elegantere Lösung.

          Gruß,
          Michi
          • 2. Re: Registryschlüssel auf Inhalt überprüfen
            HyP3r Apprentice

            Hi,

            du könntest z.B. folgendes machen:

            1. RegReadValueEx
            Dort wählst Du den entsprechenden Key, und lässt den Wert in eine Variable schreiben. Bei dem Feld Variablenname aber keine % angben.
            Also z.B. nur netversion
            2. Eine IF Abfrage auf die Variable
            IF%netversion%='0x1'
            3. ExitProc(Done)

            Danch dann das normale Setup starten.
            Wenn Du noch ein anderes Merkmal bei Paketen hast, wäre eine IsInstalled Bedingung meiner Meinung nach die elegantere Lösung.

            Gruß,
            Michi



            Super! Durch meinen (anscheinend) exterm fortgeschrittenen Tunnelblick habe ich diesen RegReadValue nicht mehr gefunden. Sonst hätte ich diesen Trhad gar nicht erstellt.

            Des weiteren nutze ich diese IsInstalled Version selten. Ich bau die immer direkt in das Script ein und beende dann mit ExitProcEx(Done, 'Bereits Installiert').

            mfg
            HyP3r
            • 3. Re: Registryschlüssel auf Inhalt überprüfen
              Frank.Scholer Master
              Hallo HyP3r,

              Des weiteren nutze ich diese IsInstalled Version selten. Ich bau die immer direkt in das Script ein und beende dann mit ExitProcEx(Done, 'Bereits Installiert')


              Hat halt den Nachteil, dass das komplette Paket (was ja ein beträchtliches Datenvolumen darstellen kann) auf jeden Fall komplett gestaged wird (also in den Repository-Cache des Clients geladen) nur um dann festzustellen, dass garnix gemacht werden muss.

              Insofern: IsInstalled-Bedingung definieren ist eine ziemlich gute Idee... ;-)

              Grüße Frank
              • 4. Re: Registryschlüssel auf Inhalt überprüfen
                HyP3r Apprentice

                Hallo HyP3r,

                Hat halt den Nachteil, dass das komplette Paket (was ja ein beträchtliches Datenvolumen darstellen kann) auf jeden Fall komplett gestaged wird (also in den Repository-Cache des Clients geladen) nur um dann festzustellen, dass garnix gemacht werden muss.

                Insofern: IsInstalled-Bedingung definieren ist eine ziemlich gute Idee... ;-)

                Grüße Frank



                Bei solch fälle aufjedenfall. Aber nicht bei einem Service Pack von 10 Megabyte wo so schnell über die Netzwerkleitung kopiert werden das ich es manchmal gar nciht merke .

                mfg
                HyP3r
                • 5. Re: Registryschlüssel auf Inhalt überprüfen
                  HyP3r Apprentice
                  Ich markiers mal als erledigt danke!
                  • 6. Re: Registryschlüssel auf Inhalt überprüfen
                    andy232 Specialist


                    Des weiteren nutze ich diese IsInstalled Version selten. Ich bau die immer direkt in das Script ein und beende dann mit ExitProcEx(Done, 'Bereits Installiert').

                    mfg
                    HyP3r



                    Hallo,

                    da ich gerade vor dem selben Problem stehe werde ich es auch ins escript einbauen. Allerdings muß man noch den Installationsmodus im Script abfragen, so daß die Prüfung nur bei normaler Installation und nicht bei erneuter Installation oder Reparaturmodus läuft. Ansonsten kann man nämlich die Software nie wieder neu installieren oder reparieren, da er ja immer das Script mit exitproc (done) vorzeitig verlässt.

                    Gruß, Andy.
                    • 7. Re: Registryschlüssel auf Inhalt überprüfen
                      Frank.Scholer Master
                      In DSM 2013.2 wird's übrigens eine neue Bedingung geben (die man auch für clientseitige Voraussetzungen verwenden kann), die auf den Wert eines Reg-Values prüfen kann: RegValue

                      Grüße Frank