12 Replies Latest reply on Nov 2, 2011 4:20 AM by NicoS1

    RunEScript-Befehl bei Job-Policy-Scripten benutzen

    NVUser Specialist
      Hallo zusammen,

      habe hier mal wieder ein Phänomen:
      Bei uns läuft ein eScript (Script A) in dem ich über den RunEScript-Befehl ein anderes starte (Script 2).
      Weiße ich Script A eine normale Policy zu, läuft auch Script 2 normal. Nehme ich stattdessen eine Job-Policy (z.B. bei jedem Login) läuft Script A auch ganz normal, bis auf Script2 (also das aufgerufene).
      Im Log steht dann folgendes:

      Warning (Module:SWMSRT, Severity:0x03): Couldn't find the needed sw package



      Lösche ich die Policy wieder und erstelle eine Standardpolicy, wird Script 2 wieder gefunden…

      Kann das jemand bestätigen/ hat jemand eine Erklärung dafür?

      Torsten
        • 1. Re: RunEScript-Befehl bei Job-Policy-Scripten benutzen
          Markus.Zierer Expert
          ich schätze das wird daran liegen, dass bei Verwendung von RuneScript keine direkte Verknüpfung zwischen den Paketen statt findet. Das ist ja auch der Grund, warum Frontrange von der Verwendung dieses Befehls abrät. Wenn der Installer eine Standard Policy bearbeitet, erkennt er zumindest dass in dem Script ein Aufruf auf ein anderes Paket enthalten ist und würde das Staging für dieses Paket iniitieren, damit das Paket auch ausgeführt wird.
          Bei einer JobPolicy scheint er das offenbar nicht zu machen. Deswegen bekommst Du dann diesen Fehler.

          Im Allgemeinen kann ich nur empfehlen, sich von der "alten" Ni 5.x Denkweise möglichst schnell zu verabschieden. Die v6 und die DSM7 funktionieren hier einfach ganz anders. Wenn Du weiterhin diesen Weg gehst, wirst Du in immer größere Schwierigkeiten reinlaufen und der Frustfaktor steigt enorm.
          • 2. Re: RunEScript-Befehl bei Job-Policy-Scripten benutzen
            NVUser Specialist
            Also zum einen würde ich es ein wenig verwirrend finden, daß man einen Befehl anbietet der nicht (immer) funktioniert. Ok, ok, so etwas gab es schon... Zum anderen hat das wohl wenig mit der Version 5.x - Denkweise zu tun (oder doch?). Es gibt einfach Skripte, die an mehreren Stellen variabel genutzt werden sollen und man sie so an einer Stelle, zentral für alle Anforderungen, verwaltet. Und da ist dieser RunEScript-Befehl genau das was es braucht.

            Aber vielleicht denke ich auch zu kompliziert. Wie löst Ihr denn Anforderungen, wo bestimmte Scripte (oder Funktionen) in Abhängigkeit von anderen Skripten benötigt werden, ohne den jeweiligen Code überall rein zu scripten?
            Am Staging kann es eigentlich nicht liegen, denn das Paket liegt ja schon lokal, wenn man es (testhalber) per Standard-Policy installiert (hatte)…

            Torsten
            • 3. Re: RunEScript-Befehl bei Job-Policy-Scripten benutzen
              NicoS1 Master
              Also ich muß gestehen, dass ich den RunEScript auch gerne, und auch erfolgreich verwende.

              Es gibt einiges an Middleware, die von verschiedener Software benutzt wird. C++ Runtimes aller Jahrgänge, J# Runtime uvm. das paketier ich nur einmal, und hole es mir in anderen Paketen rein, wenn ichs benötige, jeweils mit is Abfrage und einer Bedinung die prüft ob das benötigte Zusatzpaket installiert ist oder nicht.

              Ein RunEScript in einer JobPolicy habe ich aber noch nie getestet (und auch noch nicht benötigt ganz ehrlich). Das einzigste was mir als Hinweis einfällt wäre, dass das aufgerufene Paket freigegeben sein sollte. Unter V6 war das auf jeden Fall Vorraussetzung, damit der RunEScript überhaupt funktioniert. Obs in der V7 auch wieder ohen Freigabe überhaupt geht, hab ich nie getestet.

              Was mir sonst noch einfällt, wäre... dein aufzurufendes Paket ist nicht zufällig ein MSI Paket? MSI Pakete sind als Job Policys nämlich nicht zulässig, entsprechend könnte ich mir auch vorstellen, dass ein RunEScript auf ein MSI Paket auch nicht geht.
              • 4. Re: RunEScript-Befehl bei Job-Policy-Scripten benutzen
                Markus.Zierer Expert
                Also ich mach das so, dass die gebräuchlichsten Runtimes bereits im Standardclient enthalten sind. Damit enfällt schonmal der Löwenanteil der Referenzierung.

                Für die anderen mache ich es so, dass ich die entsprechende Runtime (oder Paket) als optionale Komponente mit ins SWSet aufnehme. Wenn die Komponente nun bereits installiert ist, ist das kein Problem, weil das SWSet das erkennt. Vorteil dabei ist, dass man über den Assoziationen Browser immer nachvollziehen kann, wo welche Runtime referenziert ist.
                Bei der Nutzung von RuneScript geht das nicht. Da hast Du keine Chance rauszufinden, wo die entsprechende Runtime überall genutzt wird. Im Falle eines Upgrades ist das der Horror schlechthin, weil Du praktisch jedes Script anschauen musst.
                • 5. Re: RunEScript-Befehl bei Job-Policy-Scripten benutzen
                  NVUser Specialist
                  Mmhh, danke erst mal für Eure Antworten!

                  @Nico
                  Also freigegeben ist es und ein msi ist es auch nicht. In dem konkreten Fall ist es eben nur ein kleines Zusatzscript, was gewisse Infos nach der eigentlichen Aktion des „Hauptscriptes“ anzeigen und diverse Files noch bearbeiten soll. Das ist bisher tatsächlich auch die einzige Konstellation in dem der Befehl bei einer Jobpolicy benutzt wird, und daher ja auch mein Erstaunen, daß es (reproduzierbar) nicht funktioniert.
                  In anderen Fällen, indem das Hauptscript eben als Standardpolicy läuft, klappt der Befehl wunderbar... und ich möchte ihn nicht missen.

                  @Markus

                  ...als optionale Komponente mit ins SWSet aufnehme...


                  ^^ Ja und genau das ist ja das Dilemma an der SoftwareSet-Lösung, die ich prinzipiell auch immer und sehr gerne nehme, sobald es sich anbietet, d.h. mindestens 2 Komponenten betrifft.
                  Wenn ich eben dann z.B. in 20 Softwaresets diese Komponente drin habe, und ich will/muß diese Komponente ändern, dann muß ich alle 20 SWSets anfassen, revisionieren, aktualisieren, distribuieren (ein tolles Wort), freigeben und an der Policy die Revision noch hochziehen. Ein enormer Aufwand wie ich finde, wenn man doch mit dem RunEScript-Befehl automatisch auf die beim Aufruf aktuellste Revision verweisen kann, ohne jedes andere Paket dafür kennen oder berücksichtigen zu müssen...


                  Ich bin mal gespannt, was der Support dazu sagt...

                  Torsten
                  • 6. Re: RunEScript-Befehl bei Job-Policy-Scripten benutzen
                    NicoS1 Master
                    Hallo Torsten,

                    ich hab da gerade eine... sagen wir mal "kreative" Idee.
                    Versuch mal das Script, dass du ausführen möchtest (inkl. dem RunEScript) einfach als Standard Policy zuzuweisen.

                    Jetzt gehst du mit einm neuen Paket als Job Policy einfach her, und löscht den zugehörigen Registry Key aus HKLM\Software\NetInstall\Installed Apps raus. Falls du einen Userteil haben solltest auch noch aus HKCU\Software\Netinstall\Installed Apps.

                    Dann sollte der Autoinstaller eigentlich hergehen, und dein Script nochmal ausführen. Ich weiß leider nur nicht, obs in der gleichen AI Session ausgeführt wird, wie die Job Policy.
                    • 7. Re: RunEScript-Befehl bei Job-Policy-Scripten benutzen
                      NVUser Specialist
                      Hi Nico,

                      das klingt "verführerisch". Gute Idee! Werde ich mal ausprobieren, ob es zumindest prinzipiell so funktionieren würde, denn in dieses Job-Löschen-Script könnte man ja dann theoretisch auch noch weiter (Projekt-) Keys aufnehmen, die auf diese Weise den RunEScript starten müssen...

                      Danke!
                      • 8. Re: RunEScript-Befehl bei Job-Policy-Scripten benutzen
                        NVUser Specialist
                        ^^ Also das funktioniert tatsächlich auf diese Weise zuverlässig! Es ist zwar nicht ganz sauber, aber einen Tod muß man ja immer sterben...

                        Danke nochmals für diese Idee, NicoS!
                        • 9. Re: RunEScript-Befehl bei Job-Policy-Scripten benutzen
                          Michi Expert
                          Ein ExitProc(Undone) hätte das selbe Verhalten und wär meiner Meinung nach die saubere Lösung dafür.

                          Gruß,
                          Michi
                          • 10. Re: RunEScript-Befehl bei Job-Policy-Scripten benutzen
                            NicoS1 Master
                            Nur, dass du mit einer Job Policy etwas flexibler bist.

                            Wenn man "Bei jedem Login" will und einen AutoInstaller Intervall von 10 Stunden hat, geb ich dir recht. Da kann man einfach via exitProc arbeiten

                            @Torsten: Danke für die Rückmeldung... freut mich das es funktioniert. Werd ich mal in meine Tips & Tricks Ecke im Gehirn aufnehmen
                            • 11. Re: RunEScript-Befehl bei Job-Policy-Scripten benutzen
                              NVUser Specialist

                              Ein ExitProc(Undone) hätte das selbe Verhalten und wär meiner Meinung nach die saubere Lösung dafür.

                              Gruß,
                              Michi



                              Hi Michi, sauber wäre es, wenn ich den RunEScript auch normal mit einer Job-Policy laufen lassen könnte...

                              Prinzipiell liegt es aber tatsächlich daran, daß ich nicht im AI-Intervall (bei uns alle 2 Stunden) das Script laufen lassen will... Zudem geht in der jetzigen Lösung das Script dann auch wieder schön auf Grün.

                              Torsten
                              • 12. Re: RunEScript-Befehl bei Job-Policy-Scripten benutzen
                                Michi Expert

                                Hi Michi, sauber wäre es, wenn ich den RunEScript auch normal mit einer Job-Policy laufen lassen könnte...



                                Hi Torsten,

                                das ist natürlich verständlich.
                                Am besten auch gleich einen Call dazu aufmachen.
                                Denn sollte sich an dem ganzen Verhalten der InstalledApp Keys mal etwas ändern, könnten solche Aktionen Folgeprobleme mit sich bringen.

                                Gruß,
                                Michi