Samstag, 23. Juli 2016

Softwarepakete beim Herunterfahren des Computers installieren

UPDATENOW
ShutdownInstaller
Autor: Frank Dethlefsen
Datum: 19.07.2016
Version: 1.6.3.1

Matrix42 und Empirum sind registrierte Markennamen der Matrix42 AG.

Vorwort
Es wurden immer wieder Anfragen von Kunden an upDateNow herangetragen, wie man Beeinträchtigungen und Störungen von Benutzern während der produktiven Arbeitszeit durch die Softwareverteilung, ins Besondere vom Patchmanagement, vermeiden und anstatt dessen zu einer unproduktiven Zeit durchführen kann. Dafür bietet sich einerseits ein Wakeup On LAN der Computer in der Nacht und auch die Softwareverteilung beim Herunterfahren zum Feierabend an. Letzteres adressiert die Lösung upDateNow ShutdownInstaller, die im Folgenden erläutert wird.

Leistungsmerkmale
·    Installation von Softwarepaketen beim Herunterfahren (nur beim Ausschalten, nicht beim Neustarten) durch den Empirum Advanced Agent. Der Benutzer ist dabei schon vollständig abgemeldet und kann Feierabend machen.
·         Es gibt keine Besonderheiten, die der Benutzer beachten muss, er kann wie gewohnt die Windows-Standardfunktion zum Herunterfahren nutzen.
·         Spezial Softwarepaketeigenschaft, die dafür sorgt, dass Softwarepakete nur beim Herunterfahren installiert werden können, nicht vorher.
·    Anpassbarer Installationshinweisdialog entsprechend Ihrer Corporate Identity inkl. Unternehmenslogo
·    Optionale Zeitsteuerungsfunktionen zur Feierabendfindung: Arbeitszeitfenster, Mindestcomputerstartzeit und Startzeitintervall
·    Optionale Ablehnungsmöglichkeit vor Ausführung allgemein oder nur für Notebooks
·    Optionale Einstellungen der Optionen mit Computervariablen
·    Protokollierung von upDateNow ShutdownInstaller Aktivitäten im SWDepot-Log und in lokaler Logdatei
·    Unterstützung von Windows XP, Windows 7, Windows 8.x und Windows 10
·    Ausführliche Anleitung für die Implementierung und Handhabung

Setup
Melden Sie sich auf dem Haupt-EmpirumServer per Remotedesktop administrativ an und führen die „upDateNow ShutdownInstaller 2016.exe“ aus. (*1 siehe Anmerkungen ganz unten). Es erscheint ein Bestätigungsdialog, ob die Installation durchgeführt werden soll. Wählen Sie „continue“ für fortsetzen aus.
Es wurde im Empirum-Hauptverzeichnis der Ordner \Empirum\upDateNow\ShutdownInstaller erstellt, in dem sich nun folgende Dateien befinden:
Datei: ShutdownInstaller.htm
Anleitung, die über den Link aus dem Startmenü\Programme\upDateNow\ShutdownInstaller\ShutdownInstaller - Tutorial aufgerufen werden kann.
Datei: VariableDefinitions.xml
Optionale Variablendefinition-Importdatei für die Computervariablen-Kollektion SHUTDOWNINSTALLER.
Datei: ShutdownInstaller.sql
SQL-Skript zum Anlegen des Softwarepaketes „upDateNow ShutdownInstaller 1.0“ im Depot.
Darüber hinaus wurde das Softwarepaket „upDateNow ShutdownInstaller 1.0“ unterhalb von \Empirum\Configurator\Packages\upDateNow\ShutdownInstaller\1.0 kopiert.
Starten Sie das Matrix42 DBUtil (Desktoplink) und melden sich an die Standortdatenbank an. Gehen Sie in das Menu Aktionen > SQL-Skripts ausführen > Standort und wählen Sie das SQL-Skript \Empirum\upDateNow\ShutdownInstaller\ShutdownInstaller.sql aus. Das SQL-Skript hat Ihnen nun das Softwarepaket in das Depot unter der Registerkarte upDateNow Tools > upDateNow ShutdownInstaller 1.0 eingefügt.

Package.cfg-Optionen für das Softwarepaket upDateNow ShutdownInstaller 1.0
Ablage: \Empirum\Configurator\Packages\upDateNow\ShutdownInstaller\1.0\Package.cfg

SET_SHUTDOWN_SCRIPT_GPO
Mit dieser Option können Sie festlegen, wie Sie die entsprechenden Shutdown-Skript Gruppenrichtlinien für den upDateNow ShutdownInstaller setzen möchten. Es gibt zwei Möglichkeiten, LOCAL oder ADS. Wenn Sie LOCAL definieren, setzt das upDateNow ShutdownInstaller Paket bei der Installation die entsprechenden lokalen Shutdown-Skript Gruppenrichtlinien automatisch. Wenn Sie ADS definieren, müssen Sie die ADS-Shutdown-Skript Gruppenrichtlinie manuell konfigurieren. Wir empfehlen die Einstellung ADS, wenn alle Computer im Active Directory sind. Im Kapitel „Konfiguration ADS Shutdown-Skript Gruppenrichtlinien“ wird beschrieben, wie die Richtlinien gesetzt werden müssen. Im Auslieferungszustand ist kein Wert definiert. Sie müssen einen Wert setzen, bevor Sie das Softwarepaket upDateNow ShutdownInstaller ausrollen, sonst bricht die Installation fehlerhaft ab.
Beispiel: SHUTDOWN_SCRIPT_GPO=ADS

SHUTDOWN_MAX_RUNTIME
Diese Option definiert die maximale Laufzeit für Shutdown-Skripte. Wenn das Zeitlimit erreicht wird, wird der Computer ohne Rücksicht ausgeschalten, auch wenn noch ein Softwarepaket installiert wird. Der Wert für die Option muss in Sekunden angegeben werden. Ist kein Wert definiert, wird die Windows-Standardeinstellung 900 Sekunden (15 Minuten) verwendet. Wir empfehlen eine Best-Practice-Einstellung von 21600 Sekunden (6 Stunden).
Beispiel für 3 Stunden: SHUTDOWN_MAX_RUNTIME=10800

WORKING_END_TIME_FRAME
Mit dieser Option können Sie ein Feierabendzeitfenster definieren, in dem die Ausführung vom upDateNow ShutdownInstaller erlaubt ist. Der Anwendungsfall ist, dass der upDateNow ShutdownInstaller nur dann starten soll, wenn der Benutzer Feierabend macht. Die Start- und Endzeit muss in 24 Stunden:Minuten-Format (hh:mm-hh:mm) angegeben werden. Ist kein Wert definiert, wird kein Feierabendzeitfenster verwendet.
Beispiel: WORKING_END_TIME_FRAME=16:30-23:59

WORKING_TIME_MIN_PAST
Diese Option definiert eine Mindestarbeitszeit in Minuten. Der upDateNow ShutdownInstaller soll nur ausgeführt werden, wenn die letzte Systemstartzeit des Computers länger her ist, als der definierte Wert. Der Anwendungsfall ist, dass der upDateNow ShutdownInstaller nur dann starten soll, wenn der Benutzer Feierabend macht. Ist die Option nicht definiert, wird keine Mindestarbeitszeit verwendet.
Beispiel für 8 Stunden: WORKING_TIME_MIN_PAST=480

INSTALLER_RUNTIME_INTERVAL
Diese Option definiert einen Startzeitintervallwert in Stunden. Der upDateNow ShutdownInstaller sollte nur ausgeführt werden, wenn die letzte Startzeit des upDateNow ShutdownInstallers länger her ist als der definierte Wert. Der Anwendungsfall soll unnötige Verzögerungen beim Herunterfahren vermeiden. Ist kein Wert definiert, wird kein Startzeitintervall verwendet.
Beispiel für 7 Tage: INSTALLER_RUNTIME_INTERVAL=168

ASK_USER_FOR_CHECK
Diese Option definiert das Erscheinen des Dialogs "Prüfe nach Softwareinstallationen?". Sie können den Benutzer fragen, ob nach ausstehenden Softwareinstallationen gesucht werden soll oder nicht. Der Anwendungsfall ist für Benutzer gedacht, die ihr Notebook mit nach Hause nehmen, aber nicht warten wollen, bis der upDateNow ShutdownInstaller beendet ist. Der Wertebereich ist 0, 1 oder 2.
0 : immer aus (Standard)
1 : immer an
2 : nur an für transportable Computer (Notebooks)
Beispiel: ASK_USER_FOR_CHECK=1

ASK_USER_CHECK_MAX_POSTBONES
Diese Option definiert die maximal möglichen Verschiebungen, für das Prüfen nach Softwareinstallationen. Wenn der Benutzer den Nein-Knopf wählt, wird der Zähler um eins erhöht. Ist die maximale Anzahl erreicht, wird das Prüfen nach Softwareinstallationen erzwungen.
Beispiel: ASK_USER_CHECK_MAX_POSTBONES=5

ASK_USER_CHECK_TIMEOUT
Diese Option legt eine Zeitüberschreitung in Sekunden für den Dialog "Prüfe nach Softwareinstallationen?" fest. Wenn der Benutzer in dieser Zeit den Nein-Knopf nicht wählt, wird der upDateNow ShutdownInstaller nach ausstehenden Softwareinstallationen prüfen.
Beispiel für 60 Sekunden: ASK_USER_CHECK_TIMEOUT=60

NOTICE_SOUND
Diese Option legt fest, ob der Hinweiston ein- oder ausgeschaltet ist.
0 : ausgeschaltet
1 : eingeschaltet (Standard)
Beispiel: NOTICE_SOUND=0

ROLLING_BAR
Diese Option legt fest, ob die Animation mit dem roten rollenden Balken ein- oder ausgeschaltet ist.
0 : ausgeschaltet
1 : eingeschaltet (Standard)
Beispiel: ROLLING_BAR =0

Optionale Konfiguration mit Computervariablen
Wenn Sie nur Package.cfg-Optionen verwenden, gelten diese systemweit. Eventuell möchten Sie unterschiedliche Optionen z.B. abteilungsspezifisch setzen. Wir stellen Ihnen dafür eine Computervariablensammlung „SHUTDOWNINSTALLER“ optional bereit, die Sie komfortabel über eine XML-Datei in der Matrix42 Management Console unter Extras > Variablendefinitionen importieren können. Die Ablage ist \Empirum\upDateNow\ShutdownInstaller\VariableDefinitions.xml.
Regel: Ist eine Option per Computervariable gesetzt, überstimmt diese die entsprechende Package.cfg-Option.

Anpassungsmöglichkeit mit Ihrer Corporate Identity
Im Source Verzeichnis finden Sie Info-<LCID>.rtf Dateien. Wir stellen die Dateien Info-1031.rtf (Deutsch) und Info-1033.rtf (Englisch) standardmäßig bereit. Sie können die RTF-Dateien nach Ihren Vorstellungen und Corporate Idendity anpassen.
Empfehlung: Verwenden Sie zum Editieren der Dateien Wordpad anstelle von Word. Sie können gerne weitere Info-<LCID>.rtf Dateien für zusätzliche Sprachen selbst erstellen. Die Benutzeranzeigesprache wird selbstständig ermittelt und sucht daraufhin nach einer entsprechenden Info-<LCID>.rtf Datei. Sofern eine entsprechende Datei gefunden wird, wird diese verwendet. Wenn nicht, wird die Info-1033.rtf (Englisch) benutzt.
Im Source Verzeichnis ist die Konfigurationsdatei Lang.ini abgelegt, in der die sprachabhängigen Texte von den upDateNow ShutdownInstaller Dialogen referenziert werden. Sie können die Texte nach Ihren Vorstellungen anpassen oder auch zusätzliche übersetzte Texte für weitere Sprachen hinterlegen.

Konfiguration ADS Shutdown-Skript Gruppenrichtlinien
Starten Sie die ADS Gruppenrichtlinienverwaltung und erstellen ein Gruppenrichtlinienobjekt mit dem Namen "upDateNow ShutdownInstaller". Richten Sie auf das Gruppenrichtlinienobjekt folgende drei Richtlinien ein:
1. Herunterfahr-Skript
Computerkonfiguration > Windows-Einstellungen > Skripts (Start/Herunterfahren) > Herunterfahren > Skripts > Fügen Sie ein Skript mit diesem Pfad hinzu:
%ProgramFiles%\upDateNow\ShutdownInstaller\ShutdownInstaller.exe
Hinweis: Verwenden Sie die Umgebungsvariable %ProgramFiles%, damit sichergestellt ist, dass das Programm
unter verschiedenen Betriebssystemplattformen gefunden werden kann.

2. Maximale Wartezeit für Gruppenrichtlinienskripts:
Computerkonfiguration > Administrative Vorlagen: ... > System > Skripts > Maximale Wartezeit für Gruppenrichtlinienskripts
Geben Sie hier denselben Wert in Sekunden ein, wie für die Package.cfg-Option SHUTDOWN_MAX_RUNTIME.
Wir empfehlen eine Best-Practice-Einstellung von 6 Stunden also 21600 Sekunden.

3. Skripts zum Herunterfahren sichtbar ausführen:
Diese Richtlinie ist nur in der ADS Version 2008R2 oder älter verfügbar.
Computerkonfiguration > Administrative Vorlagen: ... > System > Skripts > Skripts zum Herunterfahren sichtbar ausführen. Aktivieren Sie die Einstellung.

Weisen Sie nun das Gruppenrichtlinienobjekt „upDateNow ShutdownInstaller“ den ADS-Organisationseinheiten (OU) zu, in denen sich die entsprechenden Computerobjekte befinden.

Verteilung des Softwarepaketes „upDateNow ShutdownInstaller 1.0“
Weisen Sie das Softwarepaket "upDateNow ShutdownInstaller 1.0" in der Matrix42 Management Console den entsprechenden Computern zu und aktivieren es. Das Softwarepaket stellt die Programmteile und die Konfiguration auf den Computern bereit. Hinweis: Wenn Sie nachträglich Package.cfg-Optionen bzw. Computervariablen ändern, müssen Sie das Softwarepaket reinstallieren, damit die Konfiguration auf den Computern aktualisiert wird.

SWDepot-Log und lokale Logdatei ShutdownInstaller.log
Wenn der Computer runterfährt, sollte nun der upDateNow ShutdownInstaller gestartet werden. Dessen Aktivitäten werden in der lokalen Logdatei C:\ProgramData\upDateNow\ShutdownInstaller\*.log protokolliert. In der Matrix42 Management Console finden Sie im SWDepot-Log eine Status-Meldung über den letzten Vorgang. Der entsprechende Log-Eintrag wird unter dem Paketnamen „ShutdownInstallerLog“ gelistet.

Handhabung von Softwarepaketen für die Installation beim Herunterfahren
Der Benutzer ist zum Zeitpunkt der Installation von Softwarepaketen beim Herunterfahren vollständig abgemeldet. Daher können keine Softwarepakete installiert werden, die eine Benutzeranmeldung erfordern. Es werden nur Softwarepakete unterstützt, die die Paketeigenschaft Installationskontext "Immer" oder "Nur vor Benutzeranmeldung" haben.
Wenn Sie ein Softwarepaket wie z.B. das Patchmanagement nicht während der Benutzeranmeldung installieren möchten, um Beeinträchtigungen des Benutzers zu vermeiden, müssen Sie die Paketeigenschaft Installationskontext "Nur vor Benutzeranmeldung" verwenden. Das Softwarepaket kann dann nur beim Computerstart vor Benutzeranmeldung und beim Herunterfahren installiert werden. Falls sich ein Benutzer nach Computerstart sofort anmeldet, wird das Softwarepaket nicht installiert. Der Empirum Agent lädt das Softwarepaket dennoch in den lokalen Empirum-Agent-Paketcache herunter, so dass eine Installation beim Herunterfahren in der Regel keinen Download mehr erfordert und die Installationszeit auf ein Minimum reduziert wird. Wenn Sie möchten, dass ein Softwarepaket nur beim Herunterfahren installiert werden kann, müssen Sie in den Paketeigenschaften einen besonderen Registrykey-Prüfwert setzen. Der upDateNow ShutdownInstaller erzeugt diesen Registrykey-Prüfwert nur zur Laufzeit beim Herunterfahren. Das hat den Nachteil, dass das Softwarepaket auch erst beim Herunterfahren heruntergeladen wird und die Installationszeit sich verlängert. Erfahrungen zeigten aber, dass die Downloadzeit, wenn eine LAN-Anbindung zum EmpirumServer besteht, im Verhältnis zur Installationszeit vernachlässigbar ist. Das ist ins Besondere beim Patchmanagement-Softwarepaket kaum messbar.

Paketeigenschaft > Registrykey-Prüfwert:
HKLM,SOFTWARE\upDateNow\ShutdownInstaller,InstallOnShutdownOnly

Sollten Sie Interesse, Fragen oder Anregungen haben, stehe ich Ihnen gerne per Email zu Verfügung: Frank.Dethlefsen@upDateNow.de

*1: Uns ist bewusst, dass die Ausführung der „upDateNow ShutdownInstaller 2016.exe“ auf einem Server aus Sicherheitsgründen nicht üblich ist. Wir haben uns dennoch dafür entschieden, weil es die Installation und Konfiguration sehr vereinfacht. Um sich davon zu überzeugen, was das Setup macht, können Sie die „upDateNow ShutdownInstaller 2016.exe“ mit 7-Zip entpacken und das Installationsskript unter Install\Setup.inf analysieren.

Copyright © 2016 upDateNow GmbH
Diese Dokumentation ist urheberrechtlich geschützt. Alle Rechte liegen bei der upDateNow GmbH. Jede andere Nutzung, insbesondere die Weitergabe an Dritte, Speicherung innerhalb eines Datensystems, Verbreitung, Bearbeitung, Vortrag, Aufführung und Vorführung sind untersagt. Dies gilt sowohl für das gesamte Dokument als auch für Teile davon. Änderungen sind vorbehalten. Nachdruck, auch auszugsweise, ist nur mit schriftlicher Genehmigung der upDateNow GmbH gestattet.

Matrix42 und Empirum sind registrierte Markennamen der Matrix42 AG.

upDateNow GmbH
Wacholderweg 7
44869 Bochum
Deutschland
Tel.:     +49 (0)2327 - 689 - 9977
Fax:     +49 (0)2327 - 689 - 9881