ADMIN

2022

02

2022-01-30T12:00:00

Cloudmanagement

PRAXIS

042

PowerShell

Windows-Images mit PowerShell-Modul OSDBuilder managen

Bilderverwalter

von Thomas Bär

Frank-Michael Schlede

Veröffentlicht in Ausgabe 02/2022 - PRAXIS

Mit Systemabbildern der eingesetzten Windows-Versionen halten Admins ihre Systeme auf dem aktuellen Stand und sorgen so auch für Sicherheit. Die Wartung dieser Systemabbilder erfordert dabei immer einen gewissen Aufwand, denn jede Änderung am Betriebssystem oder den Applikation muss in das Image. Deutlich erleichtern soll diese Aufgabe das PowerShell-Modul OSDBuilder.

Für Administratoren sind Images der im Unternehmen eingesetzten Windows-Versionen ein wichtiges Arbeitsmittel. Ein Großteil der Systembetreuer stellt mit ihrer Hilfe nach Firmenvorgaben und Notwendigkeiten angepasste Windows-Abbilder bereit.
Online- vs. Offline-Wartung
Nun können sich IT-Administratoren trefflich darüber streiten, was denn der "bessere Weg" ist, die Windows-Abbilder zu verwalten: online oder offline. Das lässt sich nicht generell beantworten: Bei der Online-Wartung von Windows-Images ist es notwendig, zunächst eine Windows-Installation (zumeist in einer virtuellen Maschine) wunschgemäß einzurichten und dann davon das Image zu erfassen. Das kann mit den Tools von Microsoft oder der Software von Drittanbietern wie etwa Baramundi erfolgen. Ein solches Image muss dann für spätere Updates neu gestartet und nach dem Einspielen dieser Updates wiederum neu erstellt werden. Für die Offline-Methode spricht, dass es damit möglich ist, Updates automatisiert in die Windows-Abbilder einzubinden. Ein Nachteil dieser Methode besteht darin, dass es nicht möglich ist, Desktopanwendungen mit in ein Windows-Image einzubinden.
So gibt es also kein klares Votum für eine der beiden Methoden: Die IT-Abteilung muss sich entscheiden, welcher Weg für ihre Systeme der geeignete ist. Für die Verwaltung der Images mit der Offline-Methode steht unter anderem auch das PowerShell-Modul OSDBuilder bereit. Administratoren können damit die Win- dows-Abbilder managen und diese dann beispielsweise mit Hilfe von SCCM (oder einem anderen Werkzeug) verteilen. Ein großer Vorteil des OSDBuilder besteht dabei darin, dass alle Informationen in einer "Antwortdatei" lagern, die als Task bezeichnet wird. In ihr findet sich dann alles, was für eine Aktualisierung des betreffenden Images notwendig ist.
Für Administratoren sind Images der im Unternehmen eingesetzten Windows-Versionen ein wichtiges Arbeitsmittel. Ein Großteil der Systembetreuer stellt mit ihrer Hilfe nach Firmenvorgaben und Notwendigkeiten angepasste Windows-Abbilder bereit.
Online- vs. Offline-Wartung
Nun können sich IT-Administratoren trefflich darüber streiten, was denn der "bessere Weg" ist, die Windows-Abbilder zu verwalten: online oder offline. Das lässt sich nicht generell beantworten: Bei der Online-Wartung von Windows-Images ist es notwendig, zunächst eine Windows-Installation (zumeist in einer virtuellen Maschine) wunschgemäß einzurichten und dann davon das Image zu erfassen. Das kann mit den Tools von Microsoft oder der Software von Drittanbietern wie etwa Baramundi erfolgen. Ein solches Image muss dann für spätere Updates neu gestartet und nach dem Einspielen dieser Updates wiederum neu erstellt werden. Für die Offline-Methode spricht, dass es damit möglich ist, Updates automatisiert in die Windows-Abbilder einzubinden. Ein Nachteil dieser Methode besteht darin, dass es nicht möglich ist, Desktopanwendungen mit in ein Windows-Image einzubinden.
So gibt es also kein klares Votum für eine der beiden Methoden: Die IT-Abteilung muss sich entscheiden, welcher Weg für ihre Systeme der geeignete ist. Für die Verwaltung der Images mit der Offline-Methode steht unter anderem auch das PowerShell-Modul OSDBuilder bereit. Administratoren können damit die Win- dows-Abbilder managen und diese dann beispielsweise mit Hilfe von SCCM (oder einem anderen Werkzeug) verteilen. Ein großer Vorteil des OSDBuilder besteht dabei darin, dass alle Informationen in einer "Antwortdatei" lagern, die als Task bezeichnet wird. In ihr findet sich dann alles, was für eine Aktualisierung des betreffenden Images notwendig ist.
Bild 1: Das OSD-Modul liefert neue Cmdlets, die sich per Get-Commad anzeigen lassen.
OSDBuilder-Modul installieren
Wir nutzen für diesen Workshop eine aktuelle Version von Windows 10 21H1 (Build 19043.1320), die in einer virtuellen Maschine unter VMware Workstation 16 läuft. Wir testen die PowerShell-Kommandos sowohl unter der standardmäßig auf Windows 10 zu findenden Version 5.1 der PowerShell als auch unter der aktuellen Version 7.2. Dabei gibt es nur wenig Unterschiede, die wir an den jeweiligen Stellen im Artikel entsprechend benennen. Die Installation von OSDBuilder läuft wie jede andere Modulinstallation in der PowerShell ab und ist mit dem folgenden Befehl erledigt:
Install-Modul -Name OSDBuilder
Das Modul ist aus dem Repository "PSGallery" [1] (PowerShell Gallery) zu installieren. Dabei stuft Windows dieses Repository standardmäßig als nicht vertrauenswürdig ein. Die PowerShell in Version 5 als auch in Version 7 vermeldet diese Tatsache nach dem Aufruf zur Installation des Moduls und fragt, ob der Nutzer diese erlaubt. Während das bei der Version 7 nach der Bestätigung durch den Anwender sofort funktioniert, ist in Version 5 zunächst der entsprechende NuGet-Manager herunterzuladen und zu installieren. NuGet ist ein Paketmanager für .NET, mit dessen Hilfe Entwickler .NET-Bibliotheken erstellen und auch gemeinsam nutzen und verwenden können. Nach diesem Schritt ist es dann möglich, das OSDBuilder-Modul einzuspielen. Damit es keine Probleme mit der Ausführung von Skripten gibt, empfiehlt es sich, eine derartige Blockade durch den folgenden Befehl auf dem jeweiligen System zu beseitigen:
Set-Executionpolicy Bypass -force
Dabei ist "-Force" nicht unbedingt notwendig, verhindert aber wirkungsvoll, dass zusätzliche Meldungen auftauchen, die eine Nutzerbestätigung erfordern.
Anschließend laden wir von unserem Visual-Studio-Konto bei Microsoft eine aktuelle ISO-Datei mit Windows 10 21H1 in der Version vom Oktober 2021 herunter und binden diese mit einem Doppelklick als Laufwerk "F:" an das virtualisierte System an. Unser Testsystem verfügt unter dem Laufwerksbuchstaben "E:" über eine circa 100 GByte große Partition, die wir für den OSDBuilder nutzen wollen. Deshalb weisen wir im nächsten Schritt dem Modul den entsprechenden Pfad zu:
Get-OSDbuilder -SetPath E:\OSDbuilder
Auf diese Weise legen wir dann auch den Zielordner für die erstellten Images fest. Danach zeigt das Modul eine ganze Reihe von Informationen auf dem Bildschirm an. Wir werden dabei darüber informiert, dass die von uns verwendete Version des OSDBuilder mit Windows 10 von der Version 1607 bis einschließlich der Version 21H1 sowie Windows 11 in der Version 21H2 und mit den Windows Servern von der Version 2016 1607 bis zur Version 2022 21H1 zusammenarbeitet. Zudem werden einige Shortcuts für die weitere Bearbeitung aufgelistet. Dazu gehört auch der folgende Aufruf:
Get-OSDbuilder -CreatePaths
Dieser erzeugt eine entsprechende Verzeichnisstruktur im zuvor angegebenen Pfad. Da dann alle Vorbereitungen abgeschlossen sind, geht es nun daran, das zu installierende Medium auszusuchen.
Bild 2: Über die PowerShell ist das Anlegen der Verzeichnisstruktur im Zielverzeichnis schnell erledigt.
Image importieren und warten
Die von Microsoft offiziell bereitgestellten DVD-Images für Windows beinhalten in der Regel eine ganze Reihe von Abbildern mit den unterschiedlichen Editionen des Betriebssystems. Da wir das Image zuvor schon als virtuelles Laufwerk an unser Dateisystem angebunden haben, können wir nun den folgenden Befehl an der Kommandozeile unserer PowerShell aufrufen: Import-OSMedia. Dieses Kommando durchsucht die gemountete DVD und listet deren Inhalt auf. Das funktioniert auch, wenn der Nutzer mehrere Datenträger mit seinem System verbunden hat: OSDBuilder zeigt dann alle Inhalte der verschiedenen DVDs an. Im Fenster mit der Auflistung lässt sich dann die gewünschte Edition auswählen. Wir nutzen für diesen Test Windows 10 Pro (Image-Index Nummer 5).
Danach importieren wir die entsprechenden Medien in die vorgesehenen Verzeichnisse. Dabei liefert OSDBuilder Informationen zum importierten WIM-Index und legt zugleich auch eine Textdatei mit einem Protokoll im Log-Verzeichnis an. Im nächsten Schritt geht es nun darum, das gewählte Windows-Abbild auf den aktuellen Stand zu bringen. Dazu dient der folgende PowerShell-Aufruf:
Update-OSmedia -Download -Execute
Der Anwender bekommt das gewählte Image noch einmal in einer Liste dargestellt, wählt es aus und das System beginnt, die Updates herunterzuladen und direkt in das Image zu integrieren.
Zum Abschluss noch ein kurzer Blick auf die eingangs erwähnten Tasks: Mithilfe dieser Befehle können Administratoren problemlos einen Build-Prozess anstoßen, um nach ihren Vorstellungen aktualisierte Medien zu erstellen:
New-OSBuildTask
    -TaskName <Name der Task>
    -EnableFeature <Zu aktivierendes Feature>
Ein Beispiel könnte so aussehen:
New-OSBuildTask -TaskName "NetFx installieren" -EnableFeature -EnableNetFx3
Um gleichzeitig auch den Build-Prozess für das ausgewählte Image auszuführen, wandelt sich der Befehl wie folgt:
New-OSBuild -Download -Execute -EnableNetFX -SelectUpdates
Dabei veranlasst der Schalter "-Download", dass fehlende Updates direkt von Microsoft heruntergeladen und auf das Image angewendet werden. Der "-Execute"-Parameter stößt dabei den Build-Prozess direkt an, während "-SelectUpdates" ein Fenster zur Auswahl aus den verfügbaren Updates auf den Bildschirm bringt. Kommt der Aufruf auf diese Art zum Einsatz, fragt das Modul nach der Bezeichnung für die entsprechende Task. Soll dieses Update "Taskless" laufen, ist dieser Befehl erforderlich:
New-OSBuild -Download -Execute -EnableNetFX -SelectUpdates -Skiptask
Nach der Auswahl des importierten OS-Abbilds stellt das Modul dann wiederum eine Rasteransicht mit dem Updates zur Auswahl bereit, in denen der entsprechende Dienst enthalten ist.
Bild 3: Findet sich mehr als nur eine Windows-Edition auf der Quell-DVD, zeigt OSDBuilder zeigt alle an und ermöglicht eine Auswahl.
Fazit
Auch wer sich bisher noch nicht mit dem Thema Offline-Wartung von Windows-Images beschäftigt hat, wird sich schnell mit dem PowerShell-Modul OSDBuilder anfreunden können, wenn er mit dieser Aufgabe konfrontiert wird. Nicht nur, dass dieses Modul einfach in der Installation und leicht einzusetzen ist, es arbeitet auch problemlos und ohne große Unterschiede mit den unterschiedlichen PowerShell-Ausprägungen 5 und 7 zusammen. Was uns dabei besonders gut gefallen hat, ist die Art und Weise, wie das Modul den Nutzer hier an die Hand nimmt und durch den Installations- und die Upgradeprozesse führt. Zudem ist es sehr praktisch, dass OSDBuilder alle Schritte sehr ausführlich protokolliert und es mithilfe der Tasks leicht möglich ist, die Offline-Wartung der Abbilder zu automatisieren. Wer also Windows-Images zu betreuen und zu warten hat – was wohl in den meisten IT-Organisationen der Fall sein dürfte – sollte unbedingt einen Blick auf dieses PowerShell-Modul werfen. Dabei ersetzt es aber keinesfalls die Softwareverteilung, sondern ergänzt sie sinnvoll.
(jp)
Link-Codes
[1] PowerShell Gallery: https://www.powershellgallery.com/