7 Replies Latest reply on Jul 13, 2018 12:24 AM by derniwi

    a policy is started again and again

    Andreas_HGW Rookie

      Hello

       

      I have a policy which will be started again and again. But the policy is already installed and the status of the policy for the PC's is compliant.

      If the policy starts again and again (also after a niinst32 /ai) it does not much. It does not re-installing the software. It just run's for about 2 seconds.

      Can anybody give me a tip how I can find out why the policy runs although the status is compliant?

       

      In the logfile you can see this:

      ----------------------------------------------

      10:19:15.717 2      ---->Starting installation of "Smarteam V5R26"

       

      10:19:15.718 1      Evaluating condition "not RegKeyExists('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.6.1')"
      10:19:15.718 2      Condition FALSE  -> skipping IF part
      10:19:15.719 2      Skipping command : ExitProcEx

       

      10:19:15.720 2      -> RegModifyDWord('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system','ConsentPromptBehaviorAdmin','0',mrdwSet)/TS
      10:19:15.720 1       Skipping wksta-cmd.

       

      10:19:15.720 2      -> RegModifyDWord('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system','EnableLUA','0',mrdwSet)/TS
      10:19:15.721 1       Skipping wksta-cmd.

       

      10:19:15.721 2      -> RegModifyDWord('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system','PromptOnSecureDesktop','0',mrdwSet)/TS
      10:19:15.721 1       Skipping wksta-cmd.

       

      10:19:15.722 2      -> RegModifyDWord('HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\System','ConsentPromptBehaviorAdmin','0',mrdwSet)/TS
      10:19:15.722 1       Skipping wksta-cmd.

       

      10:19:15.722 2      -> RegModifyDWord('HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\System','EnableLUA','0',mrdwSet)/TS
      10:19:15.723 1       Skipping wksta-cmd.

       

      10:19:15.723 2      -> RegModifyDWord('HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\System','PromptOnSecureDesktop','0',mrdwSet)/TS
      10:19:15.723 1       Skipping wksta-cmd.

       

      10:19:15.724 1      Evaluating condition "RegValue('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System','EnableLUA',)='1'"
      10:19:15.724 2       Read value '1' from registry
      10:19:15.724 2      Condition TRUE-> entering IF part

       

      10:19:15.725 2      ->  ModifyOEM('\\sv-it-cad-1\CATIA\Admin\Logs\DSM\Smarteam\DeinstallationSmarteamV5R20.log','<End>','','Auf PC-IT-CAD-1  konnte UAC nicht deaktiviert werden.')/TS
      10:19:15.725 1       Skipping wksta-cmd.

       

      10:19:15.725 2      ->  ExitProcEx(Undone,'UAC konnte nicht deaktiviert werden.')
      10:19:15.727 2       ER: Creating event manager
      10:19:15.727 1       ER: file name is C:\Program Files (x86)\NetInst\ExR\Event.erl
      10:19:15.727 1       ER: user name is sa2728
      10:19:15.727 1      Logging up ExR event 3003 (0x00000bbb)
      10:19:15.728 0      Check if sending data is on: ExrClientOptions.ExrSendingActivated

       

      10:19:15.728 1      ExR is allowed to send data.
      10:19:15.728 1      Loading SI.dll ...

       

      10:19:15.728 1      SI: Starting ExRSend.exe ...
      10:19:15.728 2      SI: Rewriting SI client state data...
      10:19:15.728 1       SI: Reading client state...
      10:19:15.757 0       SI: Getting IP addresses...
      10:19:15.757 0       SI: Getting MAC addresses...
      10:19:15.757 1       SI: Writing possible changes of client state...
      10:19:15.762 2      xniFPS: '{05DA7ED0-3BA3-4901-9775-6BF61B69CE28}' is installed

       

      10:19:15.763 2      ---->Installation of Smarteam V5R26 has not completed on exit.

      -----------------------------------------------------------------------------------------------------------------------

       

      The policy conditions are looking like this:

       

      dsm1.PNG

       

      best regards

       

      Andreas

        • 1. Re: a policy is started again and again
          derniwi Master

          Hi Andreas,

           

          your package is runnig for both the computer and the user, using the service and the auto installer.

           

          It will restart every time because it exits with this command:

          ExitProcEx(Undone,'UAC konnte nicht deaktiviert werden.')

           

          Maybe all you have to do is to change the execution settings to "Installation in service context only" (in german: "Installation nur im Kontext des Service" ), maybe you should disable the package setting "Installation of user-related portions" (in german: "Installation der benutzerbezogenen Teile"). This will prevent the script from beeing started using the auto installer.

           

          Regards

          Nils

           

          Edit: usualyy you do not need to diable LUA for distributing software. Also, disabling LUA will need a reboot.

          Edit 2: the compliance state is only for the workstation part. You can not see if the compliance is ok for users since multiple users can log on onto a computer. And some will never log on.

          • 2. Re: a policy is started again and again
            Andreas_HGW Rookie

            Hello

             

            thank you Nils for your answer, but "Installation in service context only" is already configured.

             

            dsm2.PNG

             

            about your comment with LUA:

             

            Smarteam is such a crazy software that I have to disable UAC before installing. Otherwise the installation does not run successfuly

             

            > Edit 2: the compliance state is only for the workstation part. You can not see if the compliance is ok for users since multiple users can log on onto a computer. And some will never log on.

             

            What does that mean? What can I do?

             

            Andreas

            • 3. Re: a policy is started again and again
              derniwi Master

              Hallo,

               

              ich antworte mal auf Deutsch, ist vielleicht einfacher :-)

               

              SmartTeam kenne ich nicht. Kannst Du mal das komplette eScript posten? Kennwörter bitte vorher in einem Texteditor entfernen. Dann kann man vielleicht noch etwas erkennen.

               

              Zu "Edit 2": leider kann man in der DSM-Konsole nur den allgemeinen Paketzustand sehen, aber nicht, ob das Paket am Rechner X für Benutzer A und Benutzer B erfolgreich war. Man sieht hier nur den letzten Compliance-Status. An einem PC können sich ja durchaus mehrere Benutzer anmelden. Somit müsste man für ein Paket und für mehrere Benutzer evtl. auch unterschiedliche Stati sehen. Das ist schon mal schwierig. Und dann kann es auch sein, dass ein Rechner von einem Benutzer A an einen anderen Benutzer B gegeben wird, das Profil von A aber noch auf dem Rechner bleibt. Somit bleiben auch alle benutzerrelevanten Policies für Benutzer A offen, auch wenn dieser sich nie wieder an dieser Maschine anmelden würde. Das ganze Thema ist leider etwas heikel.

               

              Wenn man aber die Unterschiede kennt und die Pakete so plant, dass manche Pakete auch nur für Benutzer ausgeführt werden, andere nur über den Service, dann kann man hier schon ganz gut arbeiten.

               

              Zu Deinem Problem: wenn Du in der Konsole das Paket selektierst und im rechten Fensterbereich auf die Eigenschaften umschaltest, gibt es ganz weit unten einen Abschnitt "eScript-Paket". Dort findest Du die Checkbox "Installation der benutzerbezogenen Teile". Wenn in einem Paket keine benutzerrelevanten Einträge vorhanden sind und das Paket so konfiguriert ist, dass es nur über den Service läuft, dann nehme ich diesen Haken raus.

               

              Es gibt ja Befehle, die man sowohl als auch laufen lassen kann, z.B. eine MessageBox. Da ist es egal, ob der Service Installer oder der Auto Installer auf diesen Befehl stößt, die Message Box würde hier immer angezeigt werden. Auch wenn das Paket nur unter dem Service läuft, würde der Auto Installer diesen Befehl auch ausführen. Warum es diesen Schalter gibt, kann ich nicht sagen, denke aber einfach, der ist aus der Not entstanden, als DSM nach und nach gewachsen ist. Wie gesagt, heute baue ich eigentlich die Pakete so, dass wenn ein Paket nur mit dem Service laufen kann, dieser Haken auch entfernt wird.

               

              Allgemein versuche ich sogar, die meisten Pakete zu trennen, so dass über ein Paket die Software installiert wird (per Service), über ein anderes dann eine Konfiguration für die Benutzer durchgeführt wird (nur per Benutzer). Beide Pakete dann in ein Set gepackt und das klappt dann meinstens.

              Nachteil: mehr Pakete

              Vorteil: ich kann bei einem Upgrade oft Einstellungen behalten, ohne sie zu überschreiben und kann bei Bedarf die Einstellungen auch einzeln neu setzen.

              Ist aber eher meine Philosophie, nicht unbedingt zwingend. Andere packen in ein Paket zehn oder mehr Setups rein... und prüfen relativ aufwändig, was bei einem Upgrade ausgeführt werden muss und was nicht...

               

              Gruß

              Nils

              • 4. Re: a policy is started again and again
                Andreas_HGW Rookie

                Hallo Nils

                 

                ja Deutsch ist doch etwas einfacher und flüssiger :-)

                Ich habe mal versucht das Script in 4 Teilbilder aufzuteilen. Anders weiss ich nicht wie ich sie hier reinkriegen soll.

                Script1.PNG

                Script2.PNG

                Script3.PNG

                Script4.PNG

                 

                Die PCs verbleiben in der Regel alle bei einem User.

                Und ich versuche die Kommandos eigentlich immer computerbezogen per Service auszuführen.

                Das ganze Softwarepaket besteht aus einer Komponente UAC aus, dann dieses Smarteam Script und dann UAC ein.

                Wunderere Dich bitte nicht darüber das in diesem Script auch nochmal UAC Anfragen drin sind, aber bei Dutzenden von Tests auf virtuellen PCs hat das ganze ofmals zwar geklappt manchmal aber auch nicht.

                Deswegen habe ich hier dann auch noch Abfragen eingebaut um das ganze abzufangen, weil ich keine andere Lösung wußte.

                 

                Gruß Andreas

                • 5. Re: a policy is started again and again
                  derniwi Master

                  Hallo,

                   

                  warum hast Du das MSI-Paket nicht in das DSM-Paket kopiert? Das Starten von einem anderen Server kann Probleme verursachen, Du musst dafür sorgen, dass die Zugriffsrechte passen. Weiterhin kann es natürlich vorkommen, dass jemand die Datei auf dem anderen Server aktualisiert. Bei der Installation kann das noch gut gehen, bei einer Deinstallation habe ich schon oft gesehen, dass die MSI-ProductID bei neuen Versionen eine andere ist. Somit schlägt dann auch die Deinstallation fehl.

                   

                  Weiterhin ein Tipp: Du hast Rückgabewerte der Befehl, wertest diese aber nicht aus. Gerade bei MSI-Installationen gibt es eine sehr ausführliche Beschreibung der Rückgabewerte. Gerade der Return code 3010 ist zu beachten (Installation erfolgreich, aber ein Neustart ist erforderlich).

                   

                  Ebenso soltlest Du noch die Parameter "/norestart" "/quiet" verwenden, was das Leben manchmal einfacher macht. Leider sind MSI-Dateien nicht immer - wie nenne ich es jetzt? - 100% Microsoft-Kompatibel. Auch InstallShield arbeitet mit MSI-Dateien, die aber etwas anders aufgebaut sind. Soll heißen, was mit Progamm X geht, kann mit Programm Y schiefgehen (muss aber nicht). Um einen Neustart zu verhindern, hilft gelegtenlich auch der MSI-Parameter "REBOOT=ReallySuppress", wobei ein "/norestart" meistens reicht und eigentlich das gleiche bewirken sollte...

                   

                  Warum das Paket mal läuft und mal nicht, kann ich so nicht sagen. Aber der Haken bei der Paketeigenschaft "Installation der benutzerbezogenen Teile" ist sicherlich gesetzt und sorgt dafür, dass das Paket für jeden Benutzer aufgerufen wird. Wie man aus dem Protokoll sieht, wird der Befehl zum Deaktivieren ja übersprungen. Das führt halt dazu, dass die Abfrage mit ExitProcEx(Undone...) ausgeführt wird, denn am Ende des Skriptes wird LUA wieder aktiviert.

                  Wenn Du diesen Haken entfernst, sollte zumindest das Problem nicht mehr auftreten.

                   

                  Gruß

                  Nils

                  • 6. Re: a policy is started again and again
                    Andreas_HGW Rookie

                    Hallo Nils

                     

                    vielen Dank für Deine Tipps und Hinweise. Werde mal sehen was ich alles davon umsetzen kann.

                     

                    > Wenn Du diesen Haken entfernst, sollte zumindest das Problem nicht mehr auftreten.

                     

                    kann man das auch im Nachhinein machen und wenn ja wie rollt man das dann am besten aus.

                    Ich habe das Problem leider erst im Nachhinein bemerkt nachdem das Programm schon auf 50 PCs ausgerollt war.

                    Temporär habe ich bei allen installierten PCs die Policy "gestoppt", aber das ist ja auch nicht die wirkliche Lösung.

                     

                    Gruß Andreas

                    • 7. Re: a policy is started again and again
                      derniwi Master

                      Hallo Andreas,

                       

                      leider brauchst Du dafür eine neue Revision. Manchmal kan man den Haken nicht entfernen, ich suche noch, woran das liegt.

                       

                      Wenn das bei Dir aber geht, würde ich eine neue Revision anlegen, den Haken entfernen, verteilen, testen und freigeben. Danach die Policy nicht kritisch aktualisieren und die Instanzen, die noch auf diesen Fehler laufen, anhalten. Alle neueren sollten dann ja automatisch mit der Revision 2 (oder höher) erstellt werden und somit diesen Fehler nicht mehr erzeugen.

                       

                      Gruß

                      Nils