1 2 Previous Next 20 Replies Latest reply on Jan 8, 2010 3:06 AM by _Mel_

    escript error bei MultipleChoiceDlg

    Bjoern Rookie
      Hallo Gemeinde,

      ich habe ein Problem andem ich einfach nicht mehr weiterkomme, mein Freund google hat leider auch keine Idee, deswegen meine Frage an Euch, ob eventuell einer eine Idee hat wie man es lösen kann.

      Zur Umgebung:

      Ich habe ein escript gebastelt welches eine Dialogbox ausgeben soll, wo dann das Ergebnis des Anwenders benutzt wird um weitere Aktionen getrennt von einander abzuarbeiten. Problem ist, die Dialogbox erscheint nicht.

      In den Logdateien finde ich folgenden Fehler:

      Couldn't execute dialog components in the service context

      Und genau hier komme ich nicht weiter...

      Hoffe jemand kann mir weiterhelfen

      Gruß Björn
        • 1. Re: escript error bei MultipleChoiceDlg
          _Mel_ Master
          der service kann keine benutzerinteraktion machen.
          d.h. du mußt den autoinstaller benutzen und den befehl als benutzerbezogen markieren.
          • 2. Re: escript error bei MultipleChoiceDlg
            hallore Apprentice
            Hallo Björn,

            lass die Dialogbox mal im Benutzerkontext laufen, dann sollte es gehen. Die Meldung besagt, das er sie im Servicekontext nicht anzeigen kann.

            Gruß Thomas
            • 3. Re: escript error bei MultipleChoiceDlg
              Markus.Zierer Expert
              Hallo,

              Messageboxen erfordern immer eine Interaktion mit dem Benutzer. Daher können diese Befehle nicht vom NI Service ausgeführt werden. Ein einfaches flaggen auf Userbezogen reicht da leider nicht. Die Installation des Paketes MUSS über den NIAgent erfolgen. Nur dieser läuft im Userkontext und kann dann die Messagebox anzeigen.
              Daher stell das Paket in den Execution Options mal auf User Only. Dann sollte es klappen.
              • 4. Re: escript error bei MultipleChoiceDlg
                Bjoern Rookie
                Hallo zusammen,

                vielen Dank für die Antworten,
                jetzt wird mir der Fehler natürlich klar.
                Allerdings stehe ich jetzt vor dem Problem - was für mich bis jetzt eben noch keins war - dass ich das Paket nur ausführen kann wenn ein Benutzer angemeldet ist.
                Die Dialogbox war nämlich genau dafür da, dass falls ein Benutzer angemeldet ist er die Ausführung der Installation (insbesondere das Schließen von Outlook) bestätigt.
                Wäre kein User angemeldet hätte ich dieses Problem ja erst garnicht.

                Somit müsste ich mich jetzt also entscheiden ob ich das Paket auf "nur ausführen wenn Benutzer angemeldet ist" stelle und die Dialogbox nutzen kann und ein zweites Paket erstelle was dann als Service läuft und die Dialogbox nicht hat.

                Beides in einem Paket nützt mir vermutlich ja nichts da selbst wenn ich im Script abfrage ob Benutzer angemeldet ist oder nicht, wird es ja eh nicht ausgeführt wenn kein Benutzer angemeldet ist.

                Könnt ihr mir hier noch einen Rat geben?
                • 5. Re: escript error bei MultipleChoiceDlg
                  _Mel_ Master
                  dann mußt du eben ein paar fälle unterscheiden

                  serviceinstaller && angemeldete benutzer -> abbruch
                  autoinstaller && noch nicht installiert -> nachfragen
                  • 6. Re: escript error bei MultipleChoiceDlg
                    Markus.Zierer Expert
                    Prinzipiell Möglich. Aber das ist nur ne Bastellösung. Es wäre besser sich hinzusetzen und sich zu Überlegen, welche Software tatsächlich mit Service installiert werden kann und welche unbedingt über den Agent installiert werden soll. Wenn man's sauben machen will, kommt man da ned dran vorbei.
                    • 7. Re: escript error bei MultipleChoiceDlg
                      remote1 Apprentice
                      Hallo zusammen,

                      ich muss meinem Vorredner aus meinem Gesichtspunkt etwas widersprechen. Grundsätzlich würde ich jedes Script für Service und User laufen lassen. Innerhalb des Scripts sollten dann explizit die Befehle, die nur vom Service oder nur vom User ausgeführt werde sollen markiert werden (rechts-klick auf die Zeile und auswählen, ob Userbezogen, userbezogen-perservice, Maschinenbezogen, ....)
                      Bei Befehlen, die sowohl als auch laufen, ändert man einfach nichts. Somit muss ich nicht in meinen Scripten schauen, welche wann, wo, wie laufen.
                      Ansonsten könnte die Umgebung ziemlich unübersichtlich werden.

                      Gruss Ralph
                      • 8. Re: escript error bei MultipleChoiceDlg
                        hallore Apprentice
                        Hallo Björn,
                        ich frage in so einem Fall ab, ob die jeweilige exe in Benutzung ist. Wenn das der Fall ist, kannst du sie ja entweder abschiessen oder das Script stoppen.

                        Gruß Thomas
                        • 9. Re: escript error bei MultipleChoiceDlg
                          Markus.Zierer Expert
                          @remote

                          Da stimme ich Dir zu. Allerdings hat sich das Verhalten des Installers bei der v6 im Gegensatz zur 5er Welt offenbar etwas geändert. Früher war es einfach, da gabs TUS (das worauf zu anspielst) und halt eben Computer bzw. User related. Die Option "Regardless if User is logged on" bewirkt aber, dass die Installationen der Software grundsätzlich erstmal vom Netinstall Service gestartet werden. Und genau da liegt das Problem. Der Benutzerkontext vom Service ist nun mal nicht der gleiche, wie der des angemeldeten Benutzers. Und damit funktionieren eben all jene Kommandos nicht, die zwingend eine Interaktion mit dem angemeldeten Benutzer benötigen.
                          Erst wenn das Script vom NIAgent erneut ausgeführt wird, werden diese Kommandos richtig ausgeführt. Da zu diesem Zeitpunkt aber die Installation bereits einmal gelaufen ist, hat sich das Thema dann bereits erledigt. Was der Kollege hier nämlich machen möchte, ist dem angemeldeten Benutzer eine Nachricht anzeigen, dass Applikation X geschlossen werden muss.

                          Wenn es hier aber tatsächlich ein anderes Verhalten gibt, würde ich mich über eine kurze Beschreibung freuen. Meine Ausführung basiert jedenfalls auf eigener Beobachtung des Systems, ohne Anspruch auf Vollständigkeit.
                          • 10. Re: escript error bei MultipleChoiceDlg
                            Bjoern Rookie
                            Hallo,

                            danke für die anregende Diskussion. Wie von Markus erkannt, gehts wirklich nur um die Information des benutzers dass Outlook geschlossen werden muss, sofern es läuft. Sicher könnte ich es einfach per Taskkill abschießen, aber das ist nicht sehr anwenderfreundlich.
                            Idealerweise wäre es natürlich das Beste, im Script selber abzufragen ob:
                            1. Ein User angemeldet ist -> im Userkontext ausführen
                            2. Kein User angemeldet ist -> als Service ausführen

                            Hier scheiterts wahrscheinlich allerdings daran, dass ich das Paket auf "egal ob ein benutzer angemeldet ist oder nicht" stellen müsste und ich leider bei der Dialogbox per rechtsklick nicht sagen kann, benutzerbezogen ausführen.
                            • 11. Re: escript error bei MultipleChoiceDlg
                              hallore Apprentice
                              Das ist auch ein hausgemachtes Problem von enteo.
                              Wenn enteo endlich mal eine ordentliche benutzerbezogene Installation und auch die dazugehörige Verwaltung auf die Reihe bringen würde. Ich habe diesbezüglich schon mehrere Tickets aufgemacht.
                              Es wurde mir letzte Woche zu meinem letzten Ticket mitgeteilt: ...dies ist eine Entscheidung unseres Product Managements. Aufgrund zu hohen Risikos wird dieses Verhalten nicht geändert.
                              Ich weiss nicht, auf welchem Stern das Product Management lebt, aber wir benötigen benutzerbezogene Installationen und möchten diese auch verwalten.

                              Gruß Thomas
                              • 12. Re: escript error bei MultipleChoiceDlg
                                Michi Expert

                                ...dies ist eine Entscheidung unseres Product Managements. Aufgrund zu hohen Risikos wird dieses Verhalten nicht geändert.
                                Gruß Thomas



                                Hallo Thomas,

                                genau das selbe hab ich auch letzte Woche zu einem völlig anderen Thema erhalten
                                Product Management gibts ja Momentan bei Enteo eh keins oder *duckundweg*
                                • 13. Re: escript error bei MultipleChoiceDlg
                                  Markus.Zierer Expert
                                  @hallore

                                  Benutzerbezogene Installation sind mit der v6 schon möglich. Du musst lediglich die Execution Options der Pakete auf "User is logged on" stellen. Dann klappt das. Das Problem dabei ist nur, dass man dann aber das komplette Client Design darauf anpassen muss. Wie immer hat das halt gewisse Nachteile und Vorteile. Der Punkt ist, Ihr müsstet euch euer derzeitige Clientkonzept nochmal ganzheitlich betrachten und das ganze vermutlich nahezu komplett umstellen.

                                  Und was enteo betrifft, muss ich sagen, dass enteo meines Wissens nach immer gesagt hat, dass die v6 sich anders verhält als NI 5. Es wird auch immer Gebetsmühlenartig von enteo wiederholt, dass man beim Einsatz der v6 wirklich vorab das ganze durchdenken soll / muss, da das "einfach mal drauf los basteln" wie in der NI 5.x dann genau zu solchen Problemen führt. Sicher kann man sich drüber streiten, ob das jetzt eine Tolle Vorgehensweise ist oder nicht. Aber ich muss an dieser Stelle schonmal sagen, dass es etwas unfair ist auf enteo zu schimpfen. Sie haben kommuniziert. Es wollte nur keiner Hören. Bei der v6 ist eben vieles anders. Ob besser oder schlechter sollte jeder für sich beurteilen.
                                  • 14. Re: escript error bei MultipleChoiceDlg
                                    ChristophSteckelberg Expert
                                    Du kannst auf einem Standard-PC davon ausgehen, dass ein User angemeldet ist, wenn in irgend einem Key unterhalb HKEY_USERS ein "Volatile Environment" existiert (und in diesem Key ein Wert für LOGONSERVER definiert ist)

                                    Du könntest also per RegSearchFolder nach diesem Wert suchen und nur wenn die zurückgegebene Variable _nicht_ leer ist (dann ist nämlich ein Benutzer angemeldet), die Messagebox anzeigen lassen. Selbst wenn das Skript per Service ausgeführt wird, wird die Messagebox angezeigt.
                                    1 2 Previous Next