6 Replies Latest reply on Jun 16, 2009 5:19 AM by RWA

    Neustartsteuerung

    Ratzratz Expert
      Hallo Zusammen,

      uns ist aufgefallen, daß bei der Paketeinstellung "Software steuert Neustart" im Fall eines von der Software tatsächlich angeforderten Neustarts der Neustart extrem rabiat nach ca. 2-3 Sek. durchgeführt wird. Ein angemeldeter Benutzer wird gradenlos ohne Rückfrage abgemeldet.

      Kann man dieses Verhalten nicht irgendwie benutzerfreundlicher gestalten?
      Z.B. durch Nachfrage beim Benutzer, ob der Neustart erlaubt wird oder wenigstens mehr Zeit zu lassen als diese 3 Sek.?

      Man könnte zwar unter "Ausführung & Neustart" "Kein Neustart erforderlich" einstellen, aber dann funktioniert die Software evtl. nicht korrekt.

      Gruß
      M. Metzger
        • 1. Re: Neustartsteuerung
          Michi Expert
          Hi,

          wenn Du die Software über den Autoinstaller rausbringst,
          kannst Du im Paket noch die Befehle

          InitiateSystemShutdown und EndInstallerSession setzen.
          Beim ersten kannst Du eine Meldung ausgeben und die Zeit festlegen, die dem User bis zum Neustart bleibt.
          Wenn Du aber über den Service installierst, wird diese Meldung beim User nie hochkommen und der PC bootet trotzdem.

          Gruß,
          Michi
          • 2. Re: Neustartsteuerung
            Ratzratz Expert
            Hallo Michi,

            das Problem ist also, daß der ServiceInstaller gleich nach dem Hochfahren losläuft und mit der Installation computerbezogener Sachen anfängt.
            Wenn sich der Benutzer anmeldet, bevor die vom ServiceInstaller durchgeführten Installationen fertig sind, kommt der Neustart unangemeldet und ungefragt nach Beendigung der computerbezogenen Installationen.

            Bei uns werden die meisten Pakete computerbezogen (per service) ausgerollt.
            Nur benutzerbezogene Sachen (benutzerspezifische Einstellungen etc.) werden per AutoInstaller ausgebracht.
            Ich müsste also jede Menge Pakete aufdröseln und neu testen, wenn ich die auf Autoinstaller umstelle.

            Warum hat man da gegenüber dem Autoinstaller so gespart?
            Sollte bei einem anstehenden Neustart nicht grundsätzlich um Erlaubnis gefragt werden, wenn gerade ein Benutzer angemeldet ist, egal ob per ServiceInstaller oder per AutoInstaller installiert wird?

            Gruß
            M. Metzger
            • 3. Re: Neustartsteuerung
              ChristophSteckelberg Expert


              Sollte bei einem anstehenden Neustart nicht grundsätzlich um Erlaubnis gefragt werden, wenn gerade ein Benutzer angemeldet ist, egal ob per ServiceInstaller oder per AutoInstaller installiert wird?



              Hallo Ratzratz

              Baue Dir ein Job-Script mit dem Trigger "Am Ende einer Installer Session" und weise das Paket auf deine Client-Rechner zu.

              In dem Script prüfst Du ab, ob in irgendeinem Key unterhalb HKEY_USERS ein Wert für "LOGONSERVER" (RegSearchFolder) existiert - dann und nur dann ist ein User am Gerät angemeldet.
              Weiterhin prüfst Du, ob Restart-Flags gesetzt (If IsRestartFlagSet) sind.

              Falls beides der Fall ist, kannst Du eine Message-Box ausgeben, die den User darauf hinweist, dass ein Reboot aussteht. Die Bestätigung per Klick auf OK wird dabei abgewartet. Danach wie bereits beschrieben per InitiateSystemShutdown und EndInstallerSession den Reboot ausführen.

              Falls Du mit Autologon-Usern arbeitest, musst du natürlich dafür sorgen, dass für diese keine Messagebox angezeigt wird.

              Achtung: Wenn Du Patchmanagement verwendest und dort "Force Reboot" konfiguriert hast (aber wer macht sowas für Client PC ?), dann würde dein Job-Script trotzdem den Reboot abfangen
              • 4. Re: Neustartsteuerung
                Frank.Scholer Master
                Hallo Christoph,

                guter Plan! Ich würde nur noch ergänzend vorschlagen, die Frage ob ein User angemeldet ist oder nicht, einfach per WMIGetInstanceCount auf die Anzahl der Prozesse mit Namen "Explorer.exe" zu klären.

                Wenn es keinen Prozess dieses Namens gibt (der InstanceCount also 0 ist), dann ist auch definitiv niemand angemeldet.

                So hat das früher auch das "alte" SPD gemacht, wenn es um die Reboot-Steuerung nach Patch-Installationen ging, die über den Service ausgeführt wurden.

                Fühlt sich für mich einfacher an, als die gesamte HKU-Registry zu durchsuchen (was vielleicht - ich weiß es ehrlich gesagt nicht sicher -auch zu Problemen führen könnte, wenn Dienste mit nem Service Account aus der Domäne laufen, oder? Weil diese Accounts müssen ja auch von nem DC authentifiziert werden und da könnte ich mir vorstellen, dass die dann auch nen Logonserver eingetragen haben. Oder ist definitiv nicht so?).

                Grüße Frank
                • 5. Re: Neustartsteuerung
                  Ratzratz Expert
                  Hallo Christoph und Frank,

                  die Idee mit der Job-Policy ist gar nicht schlecht. Bisher dachte ich, die kann man nur zeitplangesteuert anstoßen, weshalb ich mich mit Job-Richtlinien noch gar nicht beschäftigt habe.

                  Bzgl. der Prüfung, ob jemand angemeldet ist, wird vorgeschlagen, mit WMIGetInstanceCount auf den Prozess explorer.exe zu prüfen.

                  Ich konnte per WMI (mit enteo-Bordmitteln) bisher nur so feststellen, ob die explorer.exe läuft:
                  WMISimpleQuery('\\.\root\cimv2','CIM_Process','Name=explorer.exe','_WMI_Prozess')

                  Wenn die explorer.exe läuft, enthält die Variable "_WMI_ProzessName" den Wert "explorer.exe".

                  1.) Wie geht das mit WMIGetInstanceCount?
                  2.) Gibt es evtl. per WMI eine Möglichkeit, gleich den Benutzernamen des angemeldeten Benutzers zu ermitteln, ohne das ganze indirekt über den Prozess explorer.exe zu machen?

                  Gruß
                  M. Metzger
                  • 6. Re: Neustartsteuerung
                    RWA Specialist
                    Hi zusammen,

                    ich bin von der Registry-/WMI-Abfrage im Jobskript inzwischen weg und nutze einfach die Ausführungseigenschaft "Nur wenn Benutzer angemeldet ist". Dann brauch man im Jobskript nur noch den Restartflag abfragen und entsprechend reagieren (Message Box)...