Netzwerkinstallation mit dem Microsoft Deployment Toolkit – Teil 3: Erstellung von Tasksequenzen

Dies ist der vorletzte Teil der Artikelreihe. Teil 1 ist „Netzwerkinstallation mit dem Microsoft Deployment Toolkit – Teil 1: Hinweise, Vorbereitung und Einrichtung“ und Teil 2 ist „Netzwerkinstallation mit dem Microsoft Deployment Toolkit – Teil 2: Service Account, Treiber, Software, Überlegungen zum Base Image“.

Erstellung Tasksequenzen

Es gibt verschiedene Vorlagen von Tasksequenzen beim MDT. Diese können für die jeweiligen Zwecke genutzt werden und benötigen meistens nur geringe Anpassungen. Diese Vorlagen sind:


  • Sysprep und Erfassung (Sysprep and Capture)
  • Standard Client Task Sequenz (Standard Client Task Sequence)
  • Standard Client Ersatz Task Sequenz (Standard Client Replace Task Sequence)
  • Standard Client Upgrade Task Sequenz (Standard Client Upgrade Task Sequence)
  • Benutzerdefinierte Task Sequenz (Custom Task Sequence)
  • OEM Task Sequenz mit minimalen Eingaben (Litetouche OEM Task Sequence)
  • Standard Server Task Sequenz (Standard Server Task Sequence)
  • Standard Server Upgrade Task Sequenz (Standard Server Upgrade Task Sequence)
  • Task Sequenz für nach Betriebssysteminstallationen (Post OS Installation Task Sequence)
  • VHD Erstellung für Clients Task Sequenz (Deploy to VHD Client Task Sequence)
  • VHD Erstellung für Server Task Sequenz (Deploy to VHD Server Task Sequence)

Die meisten Firmen nutzen die „Standard Client Task Sequenz (Standard Client Task Sequence)“ für Betriebssystem Installationen. Für ein In Place-Upgrade im Rahmen einer Windows-as-a-Service (WaaS) Strategie kann die Vorlage „Standard Client Upgrade Task Sequenz (Standard Client Upgrade Task Sequence)“ genutzt werden. Mehr zum Thema Windows-as-a-Service (WaaS) finden Sie in dem Artikel „Strategien zu Windows as a Service – Eine Prozessorientierte Sichtweise“.

Erstellung einer generischen Tasksequenz

Als erstes erstellen wir eine Tasksequenz für die Installation. Im ersten Schritt verwende ich dafür das vorher importierte Image von Microsoft Windows 10.

Wichtig sind die Bezeichnungen, diese sind gerade bei der Fehleranalyse wichtig. Bezeichnungen oder Namen wie „Tasksequenz1“ sind eher schlecht. Wenn Sie planen verschiedene Tasksequenzen anzulegen, zum Beispiel für Server, kann es Sinnvoll sein vorher eine Ordnerstruktur anzulegen. Anschließen legen Sie eine neue Tasksequenz an.

Für die Installation verwende ich die „Standard client Task Sequence“.

Bei der Auswahl des Betriebssystems verwenden wir das hinzugefügte Betriebssystem.

Als nächster Schritt kann der Lizenzschlüssel für Windows 10 hinterlegt werden. Wenn Sie einen Key Management Server (KMS) oder Active Directory Based Activation (ADBA) zur Aktivierung Ihrer Windows Lizenzen verwenden, Finden Sie die passenden KMS-Clientschlüssel im Beitrag „Key Management Service (KMS) Client Seriennummern [Updated 2019]“. Sollten Sie „Multiple Activation Keys“ (MAK) verwenden, können Sie diesen hier auch eintragen. Ansonsten wird Windows 10 inaktiviert und läuft erstmal 90 Tage als Testversion. Diese Einstellung verwende ich hier, um bei meinen multiplen Tests meinen MAK-Schlüssel zu schonen. Ein Hinweis zu MAK Schlüsseln, die Anzahl der Aktivierungen eines MAK Schlüssels ist endlich und hängt von Ihrer Lizenz ab. Wenn es Ihnen möglich ist, sollten Sie über die Einführung eines KMS-Servers zur Aktivierung von Windows nachdenken. Mehr zu dem Thema finden Sie im Artikel „Key Management Service (KMS) – Ein Überblick“. Eine Alternative da zu ist die Active Directory Basierte Aktivierung. Welche der Methoden Sie wählen, die Seriennummern für die jeweiligen Clients sind gleich und Sie finden diese im Artikel Beitrag „Key Management Service (KMS) Client Seriennummern [Updated 2019]“.

Jetzt können der Vollständige Name, die Organisation und die IE Startseite festgelegt werden.

Jetzt muss das Lokale Administrator Passwort festgelegt werden. Wenn es hier nicht festgelegt wird, wird es bei der Installation abgefragt. Generell sollte das lokale Administrator Passwort überall verschieden sein. Dafür empfehle ich die Microsoft Lösung „Local Administrative Password Solution“ (LAPS). Den benötigten Client werden wir später noch als Softwareinstallation in die Tasksequenz einbinden. Wenn Sie LAPS verwenden, können Sie hier erst mal ein generisches Passwort vergeben. Wenn Sie LAPS implementieren, empfehle ich Ihnen auch mal einen Blick in den Artikel „PowerShell Skripte mit Local Administrator Password Solution (LAPS) nutzen und auditieren“.

Im nächsten Schritt folgt dann wieder die Zusammenfassung, gefolgt vom eigentlichen Anlegen der Tasksequenz.

Nach der Bestätigung ist die Tasksequenz angelegt.

Jetzt muss das Beispiel noch etwas angepasst werden.

Einbinden der Treiber in das generische Tasksequenz

Beim Einbinden von Treibern gehe ich einen anderen Weg als den Üblichen in der Vorlage. Die Tasksequenz Vorlage verwendet Plug-n-Play, um den richtigen Treiber auszuwählen. Das ist eigentlich nicht falsch, aber es wird die aktuellste Version des Treibers genutzt. Das muss nicht immer die Richtige für die Hardware sein.

Es möglich das verschieden OEM andere Versionen eines Treibers haben. OEM B hat eine höhere Versionsnummer verwendet, damit sein für seine Hardware optimier Netzwerkkartentreiber statt der Generische Chipsatztreiber des Netzwerkkomponenten Hersteller genutzt wird. Leider behält OEM A die Versionierung des Originals weiter und reicht den Treiber ohne Modifikationen durch. Durch die Optimierung des Treibers von OEM B läuft der leider mit der Hardware von OEM A instabil.

Auch kann es sein das Bestimmte Hardware nicht mehr mit aktuellen Versionen eines Treibers unterstütz wird.

Deshalb installiere ich nur das Treiberpacket das für das Gerät gedacht ist. Das spart mir auch im Fehlerfall das Problem, das ich ggf. erstmal die Herstellertreiber installieren muss und das Problemreproduzieren muss.

Dazu modifizieren Sie die „Preinstall“ Phase der Task Sequenz. Da Sie wahrscheinlich im Laufe der Zeit mehr wir ein paar Treiberpakete haben werden, empfehle ich einen Ordner an der Stelle anzulegen wo bisher der schritt „Inject Drivers“ ist.

Den Schritt „Inject Driver“ können Sie deaktivieren oder löschen.

Klicken Sie auf den Angelegten Ordner und wählen dann unter den Drop-Down „Add“ die Punkte „General“ > „Inject Drivers“ aus.

Vergeben Sie jetzt einen passenden Namen, zum Beispiel die Modellzeichnung des Gerätes. Wählen sie das „Selection Profile“ das sie für die passenden Treiber angelegt haben. Selektieren sie die Option „Install all drivers from the selection profile“. Wechseln Sie dann auf den Reiter „Options“.

Wählen Sie jetzt im Drop-Down „Add“ den Eintrag „If statement“ und wählen dann „Any conditions“. So können Sie auch ein Treiberpaket wie ein Family-Pack für mehrere Modelle verwenden.

Dann fügen Sie über das „Add“ Menü den Punkt „Query WMI“ hinzu. Als Abfrage geben Sie eine für Ihr Hardware Model passende WMI Abfrage ein. Hier im Beispiel ein Dell XPS 13 9365, die Abfrage dafür ist:

SELECT * FROM Win32_ComputerSystem WHERE Model LIKE "XPS 13 9365"

Jetzt haben Sie für das erste Model die Treiber hinzugefügt.

Wiederholen Sie den Schritt für alle Modelle. Wenn Sie gerne ein paar generische Treiber in der Hinterhand haben möchten, können Sie auch eine Auswahl mit entsprechenden WMI Abfragen machen, die statt „LIKE“ ein „NOTLIKE“ enthalten. Dann müssen Sie aber für jedes neue Model 2 Einträge pflegen.

Einbinden von Software in die Tasksequenz

Als nächsten Schritt binden wir Grundlegende Software ein, die immer installiert werden soll.

Dafür müssen wir in der Tasksequenz in den Zweig „State Restore“ wechseln. Dort findet sich ein Eintrag „Install Application“. Hier werden die Anwendungen installiert, die Sie im LTI nach dem Booten auswählen können, wenn Sie das nicht unterdrücken. Uns geht es um möglichst wenige Schritte, also treffen wir hier eine Vorauswahl. Ich verwende dafür immer die Option „Install a single application“. Wichtig ist, Sie können das mit jeder Anwendung außer LAPS machen. Das erkläre ich im Anschluss.

Den Originaleintrag wieder Deaktivieren oder Löschen. Es sei denn Sie möchten die Funktion der Abfrage nutzen.

Zum Hinzufügen der Anwendung wählen Sie das Menu „Add“ und dann die Einträge „General“ > „Install Application“

Vergeben Sie einen passenden Namen und selektieren „Install a single application“ und klicken dann auf „Browse“

Wählen Sie die passende Anwendung aus und klicken „OK“.

Und schon ist Ihre erste Anwendung für die Installation in der Tasksequenz fertig.

Tipp: Wenn Sie bestimmte Software nur auf bestimmten Hardwaremodellen installieren möchten, können Sie auch hier wieder mit WMI Filtern arbeiten, genauso wie bei der Treiberinstallation in der Tasksequenz.

Auch können Sie hier noch mit Variablen und weiteren Parametern arbeiten. So ergeben Sich viele Möglichkeiten die Installation von Software auch von anderen Optionen abhängig zu machen.

Nach dem Sie die gewünschten Softwarepakete hinzugefügt haben, sollten Sie die beiden Windows Update schleifen aktivieren. So wird bei der Installation das Betriebssystem und die Microsoft Anwendungen direkt auf den aktuellen Stand gebracht. Wenn Sie die Konfiguration für Windows Updates vorher festlegen möchten, machen sie das am besten über passende Gruppenrichtlinien oder Registry-Einträge, die Sie in der Tasksequenz setzten.

Einbinden von Local Administrator Password Solution (LAPS) in die Tasksequenz

Warum ist Local Administrator Password Solution (LAPS) anders als andere Anwendungen werden Sie sich fragen? Die Installation von LAPS ist nicht anders, aber LAPS ändert das lokale Administratorkennwort. Und dieses wird vom MDT benötig, bis nach dem letzten Neustart. Gerade durch Windows Updates oder andere Schritte sind ein paar Neustarts in der Tasksequenz nötig.

Fügen Sie LAPS vor dem Punkt „Apply Local GPO Package“ in die Tasksequenz ein, wie sie es auch mit den anderen Programmen gemacht haben.

Wählen Sie dann wie dann diesmal LAPS als Applikation aus.

Fertig ist die Tasksequenz.

Konfiguration der Deployment Share Regeln

Bevor Sie jetzt loslegen können sollten wir noch ein Paar Einstellungen an den Regeln für das Deployment Share festlegen. Wenn Sie hier nichts ändern, stellt das „Lite-Touch“ so viele Fragen, das man erst mal eine Weile beschäftigt ist. Diese Fragen beantworten wir vorab in den Regeln. Frisch installiert sehen die so aus:

[Settings]
Priority=Default
Properties=MyCustomProperty

[Default]
OSInstall=Y
SkipCapture=NO
SkipAdminPassword=YES
SkipProductKey=YES
SkipComputerBackup=NO
SkipBitLocker=NO

Wir ändern die für unsere Bedürfnisse etwas ab

[Settings]
Priority=MacAddress,SerialNumber,Default

[Default]
_SMSTSORGNAME=InfrastrukturHelden
OSDComputerName=Win10-#Left("%SerialNumber%",9)#
OSInstall=YES
UserDataLocation=AUTO
TimeZoneName=W. Europe Standard Time
AdminPassword=*****
UserDomain=ADIFH
UserID=SRV-MDT-BA
UserPassword=******
MachineObjectOU=OU=Clients,DC=ad,DC=infrastrukturhelden,DC=de
DomainAdminPassword=*******
DomainAdmin=SRV-MDT-BA
DomainAdminDomain=ad.infrastrukturhelden.de
JoinDomain=ad.infrastrukturhelden.de
FinishAction=REBOOT
SkipCapture=YES
HideShell=YES
ApplyGPOPack=NO
;WSUSServer=https://update.ad.infrastrukturhelden.de:8531
SkipAppsOnUpgrade=NO
SkipRoles=YES
SkipAdminPassword=YES
SkipProductKey=YES
SkipComputerName=NO
SkipDomainMembership=YES
SkipUserData=YES
SkipLocaleSelection=YES
SkipTaskSequence=NO
SkipTimeZone=YES
SkipApplications=NO
SkipBitLocker=no
SkipSummary=YES
SkipCapture=YES
SkipFinalSummary=YES
UserLocale=de-DE
KeyboardLocale=de-DE

Wenn Sie einen Windows Server Update Service (WSUS) benutzen möchten, entfernen Sie das „;“ vor dem Eintrag „WSUSServer“ und ändern die URL entsprechend ab. Weitere Beispiele zu den Microsoft Deployment Toolkit (MDT) Deployment Share Regeln finden Sie auf Microsoft Docs.

Den Computernamen lasse ich automatisch erzeugen, er besteht in diesem Beispiel aus „Win10-“ und den ersten 9 Stellen der Geräteseriennummer. Dies wird durch den Eintrag „OSDComputerName=Win10-#Left(„%SerialNumber%“,9)#“ erreicht.

Eine Migration der Benutzerdaten habe ich auch nicht vorgesehen in meinem Testlabor. Das wird durch den Eintrag „SkipUserData=YES“ bewirkt. Wenn Sie Benutzer Daten übertragen möchten, schauen Sie sich mal das „User State Migration Toolkit“ (USMT) von Microsoft an. Dies ist auch kostenfrei und kann sowohl in das MDT integriert werden als auch über Skripte angesprochen werden.

Passen Sie Ihre Regel für Sich entsprechend an. Klicken Sie dazu mit der rechten Maustaste auf das Deployment Share und wählen „Properties“

Wählen Sie den Reiter „Rules“ und modifizieren die Einträge entsprechend.

Zusätzlich muss auch noch die Bootstrap.ini angepasst werden. Diese ist Bestandteil des Bootimage und sorgt für den Zugriff auf das Netzwerklaufwerk, um die Netzwerkverbindung herzustellen. Wenn Sie die Bootstrap.ini nicht anpassen, müssen Sie sich beim Starten erstmal am Netzwerk anmelden, bevor die Tasksequenz ausgewählt werden kann. Auch können Sie in der Bootstrap das Tastaturlayout direkt festlegen, statt immer gefragt zu werden. Auch die MDT Willkommensmeldung würde ich direkt unterdrücken, dass spart auch wieder einen unnötigen Klick.

Vorbereitungen für den ersten Test

Um diese jetzt zu testen muss zuerst das Deployment Share aktualisiert werden. Machen Sie dazu einen Mausklick mit der rechten Maustaste auf das Deployment Share und wählen „Update Deployment Share“

Bei den Optionen reicht im Normalfall die Einstellung „Optimize the boot image updating process“, dies geht am schnellsten. Trotzdem sollten Sie gelegentlich mal das Image Vollständig neu generieren lassen. Gerade nach umfangreichen Änderungen, am besten starten Sie diesen Vorgang dann zum Feierabend.

Danach folgt die obligatorische Zusammenfassung.

Nach dem Sie die Optionen bestätigt haben, wird die Share aktualisiert. Jetzt ist ein guter Zeitpunkt, um einen Kaffee zu holen und sich mit den Kollegen in der Kaffeeecke noch etwas zu unterhalten. Gerade das erste Mal benötig sehr lange. Immerhin werden jetzt alle bisherigen Schritte in das Image eingefügt.

Am Ende dieses Schrittes erfolgt eine Zusammenfassung. Im Zuge des Updates, wurde auch das Boot-Medium erstellt, um den Microsoft Deployment Toolkit (MDT) zu starten. Wenn Sie nichts verändert haben wurde im Deployment Share im Order Boot das ISO und die für den Windows Deployment Server (WDS) benötigte WIM Datei erzeugt. Diese sind keine offline Medien, wie diese erstellt werden, verrate ich Ihnen in dem Artikel „Offline Medien mit dem Microsoft Deployment Toolkit (MDT) erstellen“.

Jetzt ist ein guter Zeitpunkt die Tasksequenz mit dem ISO zu testen, zum Beispiel mit einer Virtuellen Maschine. Danach wissen Sie ob grobe Fehler in der Tasksequenz sind. Die ISO-Dateien finden Sie im Unterordner „Boot“ Ihrer Deployment Share.

Testinstallation mit der Tasksequenz

Um die Tasksequenz zu testen nehme ich eine Hyper-V VM und binde das Boot-Iso ein. Die VM ist eine Generation 2 VM mit UEFI Unterstützung, das ist wichtig, weil es keinen PC ohne UEFI mehr neu zu kaufen gibt. Nach dem ich von CD gestartet habe erscheint die Abfrage nach der Tasksequenz, wenn die Bootstrap.ini und das Regelwerk richtig sind.

Da ich viele der LTI Dialoge in den Regeln abgeschaltet habe, kommt bei in diesem Beispiel in dieser Tasksequenz nur die Abfrage nach der Tasksequenz und dem BitLocker. Die BitLocker lasse ich im Lab drin, da manche der alten Testgeräte oder machen VMs je nach Einstellung kein TPM haben. Die Abfrage nach der Tasksequenz belasse ich bei mir aktiv, damit ich mehrere auswählen kann, ohne immer einen Computerspezifischen Eintrag in die Rules machen zu müssen.

Und schon beginnt die Installation mit den einzelnen Schritten.

Die benötigten Neustarts führt die Tasksequenz ohne weitere Interaktion aus.

Nach den ersten Schritten und Änderungen kommt dann auch das fertige Windows hoch, und durchläuft die weiteren Schritte der Tasksequenz. Die Anmeldung erfolgt automatisch, es sind keine weiteren Aktionen notwendig, außer warten.

Dann erfolgen die letzten Schritte, Updates

und Software Installation. Auch dabei erfolgen bei Bedarf wieder automatisch Neustarts. Wenn Sie nach der Installation einer Software einen dedizierten Neustart benötigen, integrieren Sie diesen nicht in den Wrapper (z.B. mit einem Shutdown-Befehl), sondern nutzen fügen dafür einen entsprechenden Reboot-Schritt in die Tasksequenz ein.

Als letztes startet das System wie in der Regel „FinishAction=REBOOT“ definiert neu und ist dann einsatzbereit. Wenn Sie die Geräte direkt nach der Neuinstallation verpacken möchten, ohne noch manuelle Schritte zu unternehmen, verwenden Sie statt den „REBOOT“ den Wert „SHUTDOWN“.

Anzeige

Klicken Sie auf den unteren Button, um den Inhalt von rcm-eu.amazon-adsystem.com zu laden.

Inhalt laden


Weiter geht es in dem letzten Teil: „Netzwerkinstallation mit dem Microsoft Deployment Toolkit – Teil 4: Integration des Base Image und des Windows Deployment Service“


Autor: Fabian Niesen

Fabian Niesen ist seit Jahren beruflich als IT-Consultant unterwegs. Hier schreibt er privat und unabhängig von seinem Arbeitgeber. Unter anderem ist er Zertifiziert als MCSA Windows Server 2008 / 2012, MCSA Office 365, MCSA Windows 10, MCSE Messaging, MCT und Novell Certified Linux Administrator. Seit 2016 ist er auch MCT Regional Lead für Deutschland. Seine Hobby’s sind Social Media, Bloggen, Mittelaltermärkte, Historische Lieder und der Hausbau. Zu finden ist er auch auf folgenden Plattformen: -

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.