NWC Services Blog
Patch Installation während der Basisinstallation
Die Installation der Microsoft Patche wird in den meisten Fällen mit 2 Job Policies auf den Patch Management Execution Packages (PMExec) getriggert. Ein Job steht auf wöchentlich und "Scan only" der andere Job auf täglich und "InstallAndScanIfNeeded". Dies sorgt dafür, dass der Scan eines Systems auf einmal wöchentlich begrenzt ist,die Installation der Patche durch den zweiten job aber relativ zeitnah geschieht. Für den produktiven Betrieb auch eine meist sinnvolle Konstellation. Um die Patch Installation während der OS Installation durchzuführen, wird i.d.R. ein dritter Job geschrieben, der als Schedule "Nach der OS Installation" eingetragen hat. Dies führt zwar zu einem Update der Betriebbsystemkomponenten, lässt aber die folgenden Anforderungen ausser Acht:
1) Alle Patche sollen auf einmal am Stück installiert werden.
2) Patche sollen zu einem definierten Zeitpunkt installiert werden.
3) Die Patche sollen nach den Paketinstallation laufen.
4) Es sollen alle Patche die freigegeben sind, auch auf dem PC installiert werden.
5) Der Benutzer darf sich erst anmelden, wenn alle Patche installiert sind.
Hinweis
Diese Lösung ist ein exemplarisches Beispiel und setzt einige zentrale Konfigurationen voraus, die nicht in jeder Umgebung gegeben sind oder anders gelöst sind. Es ist i.d.R. nicht notwendig die bestehende DSM Umgebung exakt auf die hier aufgeführten Werte anzupassen. Sollten Sie unsicher sein, wie die hier beschriebenen Möglichkeiten in Ihre Umgebung implementiert werden können, sprechen Sie uns bitte in Bezug auf einen gemeinsame Implementierung an.
Implementierung der StateInfo Property "StagingPhase"
Die Voraussetzung für die Implementierung der folgenden Lösung ist die Integration eines Staging Parameters. Es wird davon ausgegangen, dass jedes Computerobjekt über die Property "StagingPhase" verfügt. Die Installation eines Client durchläuft (in folgendem Beispiel) folgende Phase:
1 Systemlayer = InstOrderId 10001 - 19999
2 Hardwarelayer = InstOrderId 20001 - 29999
3 Desktop-Standard Layer = InstOrderId 30001 - 39999
4 Computerrole-Layer = InstOrderId 40001 - 49999
5 Individual-Layer = InstOrderId 50001 - 59999
8 Security Layer = InstOrderId 80001 - 89999
9 Finishing Layer = InstOrderId 90001 - 99999
100 Betrieb
Die Eigenschaft "StagingPhase" wird beim Start der Installation eines Layers entsprechend der gezeigten Nummer angepasst. Umgesetzt wird dies durch ein Start-Paket am Anfang jedes Layers (und ggf. einen End-Paket am Ende jedes Layers für weitere Steuerungsmöglichkeiten). Eingeleitet wird die Installation durch ein erstes Paket (10001_Start) das die StagingPhase 1 setzt und abgeschlossen durch ein letztes Paket (99999_End), welches die StagingPhase 100 setzt. Ziel ist nun, die Patch Installation im Finishing Layer vor dem End-Paket einzuordnen.
Infrastruktur Konfiguration
Ist dieses Staging Modell implementiert, wird der Patchmanagement Service in der Infrastruktur so konfiguriert, dass er grundsätzlich nach den NetInstall Paketen installiert wird.
Diese Reihenfolgen Einstellung sorgt dafür, dass definitiv keine Patche installiert werden, solange noch Policy Instanzen auf dem Status "Pending" stehen.
Erstellen eines Staging-PMExec Paketes
Nun wird das Standard PMExec kopiert und somit eine Version geschaffen, die editierbar ist. In dieses PMExec Paket wird folgender Code implementiert:
Die lokale Variable "_staging" wird dabei mit der eigenen StagingPhase Variable befüllt. Wichtig zu beachten ist, dass am Ende des Scriptes mit Hilfe des Befehls "ModifyObjectProperty" die StagingPhase auf "10" gestellt wird.
Neben dem Script selber, wird die InstallationOrderId für das PMExec Paket auf 99998 gesetzt und ist somit das vorletzte Paket, vor dem absoluten End-Paket (mit der InstOrder ID 99999).
Berechtigung des End Paketes
Da die Patches während der Installation laufen müssen, muss dafür gesorgt werden, dass das End-Paket keine gelbe Policyinstanz erzeugt (da ansonsten das PMExec Paket auf die Erfüllung des SOLL Zustandes des End-Paketes aufgrund der oben gesetzten Infrastrukturkonfiguration) wartet. Daher wird nun im End-Paket die Serverseitige Installationsvorausetzung "StagingPhase >= 10" eingetragen. Dies sorgt dafür, dass erst eine Policy Instanz erzeugt wird, wenn das PMExec Paket gelaufen ist (das den Status erst auf 10 erhöht). Die Abfrage auf ">=" ist notwendig, damit die Policyinstanz auch bestehen bleibt, wenn die StagingPhase 100 durch das End-Paket gesetzt wurde.
Die Zuweisung
Die Zuweisung des PMExec Pakete erfolgt an gleicher Stelle wie das End-Paket als normale Softwarepolicy.
Die Installation
Wird ein Computer neu angelegt, wird für das End-Paket erst eine Policy Instanz angelegt, wenn das PMExec Paket gelaufen ist. Wird ein Bestandscomputer neu installiert, geht die Policyinstanz des End-Paketes auf "rot" mit dem Kommentar "OutOfScope". Dieser Status bleibt bestehen, bis dass PMExec Paket gelaufen ist. Dann wechselt der Compliance Status des End-Paketes auf gelb und kann ausgeführt werden.
When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.
Kommentare