Schlagwort-Archiv: Updates

Step by Step: Updating WIM-Image mit ConfigMgr und WSUS

Veröffentlicht am 19.06.2015 um 20:30 Uhr von

Ich werde immer wieder gefragt, wie man mit dem Configuration Manager ein Referenzimage erstellt, in dem die über einen WSUS-Server bereitgestellten Windows-Updates integriert sind. Grundsätzlich ist das nicht besonders schwierig, wenn man zwei Dinge beachtet.

  • ztiwindowsupdate.wsf aus dem Microsoft Deployment Toolkit benutzen
  • Updates, die mehrere Neustarts benötigen, ausschließen

Schritt 1: ztiwindowsupdate.wsf integrieren

Im ersten Schritt muss ein Package im Configuration Manager erstellt werden, das die Dateien „ZTIWindowsUpdate.wsf“ und die „ZTIUtility.vbs“ aus dem Microsoft Deployment Toolkit (Download) beinhaltet. Das Erstellen eines Programms ist nicht notwendig. Wir benötigen nur die Quelldaten. Im Anschluss muss das Paket auf Eure verwendeten Distribution Points verteilt werden.

5

Create Package with „ZTIWindowsUpdate.wsf“ and „ZTIUtility.vbs“ (1)

Create Package with "ZTIWindowsUpdate.wsf" and "ZTIUtility.vbs" (2)

Create Package with „ZTIWindowsUpdate.wsf“ and „ZTIUtility.vbs“ (2)

Im nächsten Schritt muss die Adresse des WSUS-Servers als Tasksequenzvariable gesetzt werden. Wichtig ist hier, dass neben der Adresse auch der Port des WSUS-Servers korrekt eingetragen wird. Bei mehreren WSUS-Server können natürlich auch dynamische Variablen genutzt werden.

Set WSUSServer-Variable -> Value: http://yourwsusserver:8530

Der nächste Schritt in der Tasksequenz beinhaltet dann den Aufruf der ZTIWindowsUpdate.wsf. Der Aufruf ist schlussendlich für den Patchvorgang verantwortlich.

Call cscript.exe ZTIWindowsUpdate.wsf via command line

Schritt 2: Updates, die mehrere Neustarts benötigen, ausschließen

Wie Microsoft in seinen KB-Artikel beschreibt, benötigen einige Windows-Updates mehrere Neustarts. Die Folge ist, dass die Tasksequenz diese Neustarts nicht selbst initiiert und daher nicht kontrollieren kann und abbricht. Microsoft beschreibt das Problem wie folgt:

„The first restart that is initiated by the software update is controlled by the task sequence. However, the second restart request is initiated by a Windows component (typically, Component-Based Servicing) and is not controlled by the task sequence. Therefore, the task sequence execution state is not saved before the restart because the second restart is not controlled by the task sequence. When the task sequence resumes after the second restart, no state is available to continue successfully.“

Abhilfe schafft hier das Ausschließen der Updates, die einen mehrfachen Neustart benötigen. Die betroffenen Updates sind ebenfalls in diesem Artikel gelistet. Doch wie können die Updates ausgeschlossen werden?

Microsoft hat in der ztiwindowsupdate.wsf eine if-Anweisung integriert, die prüft, ob bestimmte Updates auf der BadKBArticlesList stehen. Diesen Wert können wir über die Tasksequenzvariable WUMU_ExcludeKB mit Inhalt füllen. Die Microsoft Deployment Toolkit Documentation Library beschreibt die WUMU_ExcludeKB-Variable wie folgt:

„The list of Windows Update/Microsoft Update software updates to ignore. […] All updates are logged and recorded in the ZTIWindowsUpdate.log file, which is generated during deployment. Each update will indicate its status as INSTALL or SKIP and lists the UpdateID, the update name, and the QNumber associated with each update. If an update needs to be excluded, that update should be added to the CustomSettings.ini file.“

In der Praxis bedeutet dies, dass wir in der „Build + Capture“-Tasksequenz einer reinen ConfigMgr-Umgebung mehrere Task-Sequence-Variablen setzen müssen, da die CustomSettings.ini ja nur in Verbindung mit de Microsoft Deployment Toolkit genutzt werden kann. In dem Fall von Windows 7 müssen derzeit drei Updates ausgeschlossen werden (KB2965788, KB2984976 und KB3036493). Daher müssen folgende Werte gesetzt werden:

  • Task-Sequence-Variable: WUMU_ExcludeKB001
    Value: 2965788
  • Task-Sequence-Variable: WUMU_ExcludeKB002
    Value: 2984976
  • Task-Sequence-Variable: WUMU_ExcludeKB003
    Value: 3036493

Die folgenden Screenshots verdeutlichen die Konfiguration:

1

WUMU_ExcludeKB001 = 3036493

2

WUMU_ExcludeKB002 = 2984976

Während der Ausführung der Tasksequenz wird der Windows Update-Prozess in der WindowsUpdate.log auf der Referenzmaschine protokolliert. Hier kann man nun auch feststellen, dass die besagten Updates übersprungen werden und der Capture-Vorgang schlussendlich erfolgreich ist.

76

PS: Natürlich kann man die WUMU_ExcludeKB-Variable dazu nutzen, um bestimmte Updates auszuschließen, die nicht Bestandteil von Eurem Referenzimage sein sollen.