Bereitstellung von Betriebssystemtreibern (AddOn)
In dem folgenden Kapitel wird zunächst das Konzept der Betriebssystemtreiberintegration beschrieben. Im Anschluss wird beschrieben, wie man mit Hilfe des Matrix42 PreOS Pakets HardwareInfo an die notwendigen Informationen kommt und wie man mit Hilfe des Matrix42 Treiberassistenten die Informationen und Treiber integriert.
Konzept
Bevor wir zum Bereitstellen der Betriebssystemtreiber übergehen, möchten wir auf die Funktionsweise der Hardwareerkennung und der darauf basierenden Zuordnung eines Treiberpakets eingehen.
Für die Integration der Betriebssystemtreiber ist das Matrix42 PreOS Paket DriverIntegration zuständig. Das Paket besitzt die Möglichkeit, anhand von zwei Varianten zu entscheiden, welches Treiberarchiv oder Treiberverzeichnis in das Betriebssystem integriert werden soll.
- Direkte Angabe des Treiberarchivs oder Treiberverzeichnisses über die Computervariable DriverIntegration.DriverArchiveFileName
- Automatische Bestimmung des Treiberarchivs oder Treiberverzeichnisses über die Steuerungsdatei Drivers.json anhand des Herstellernamens, Modellnamens und des Betriebssystem Typs (Windows 7, Windows 10, Windows Server 2016 oder Windows Server 2019)
Die Steuerungsdatei finden Sie auf dem Empirum-Server unter:
\\%EmpirumServer%\Configurator$\Packages\Matrix42\OsPackages\Drivers\Drivers.json
Das Mapping findet über den Herstellernamen, den Modellnamen einer Hardware und der zugewiesenen Betriebssystemquelle statt. Genau diese Informationen sind in der Datei Drivers.json
zusammengefasst.
Die Namen für Hersteller und Modell sind nicht beliebig, sondern lauten so, wie sie von WinPE zur Laufzeit durch die Windows Management Instrumentation (WMI) Klassen ausgelesen werden (gwmi win32_computersystem). Diese Information bekommt man auch, wenn man das Matrix42 PreOS Paket HardwareInfo ausführt.
Mit dem DriverIntegration PreOS Paket ab der Version 2.13 muss der Modellname in der Datei Drivers.json nicht mehr komplett mit dem WMI ausgelesenen Modellnamen übereinstimmen. Es reicht, wenn der von WMI ausgelesene Modellname mit dem Modellnamen in der Datei Drivers.json anfängt.
Beispiel:
Der WMI Modellname ist VMware7,1
Der Modellname in der Datei Drivers.json ist VMware7
Somit wird der Treiber verwendet, der unter dem Modellnamen VMware7 angegeben ist, auch wenn der Name nicht komplett übereinstimmt.
Gibt es mehrere Modellnamen in der Datei Drivers.json die zu dem WMI ausgelesenen Modellnamen passen, wird das Modell mit der größten Übereinstimmung im Namen ausgewählt.
Beispiel:
Der WMI Modellname ist VMware7,1
Als Modellnamen in der Datei Drivers.json sind VMware7 und VMware vorhanden.
Somit wird der Treiber verwendet, der unter dem Modellnamen VMware7 angegeben ist, da dieser eine größere Übereinstimmung mit den ausgelesenen Modellnamen besitzt.
Einige Hersteller bieten Treiberpakete für mehrere Modelle an. Wobei sich die Modellnamen dabei nur durch unterschiedliche Namensendungen unterscheiden. Mit dieser Anpassung können die Einträge in der Datei Drivers.json zusammengefasst werden. Es muss nicht mehr für jede einzelne Modellvariante ein Eintrag erstellt werden.
Ermitteln des Herstellers und des Modells
Um die automatisierte Zuordnung von Treiberpaketen folgerichtig ausführen zu können, benötigen Sie - wie bereits erwähnt - die Hersteller und Modellbezeichnung, wie sie durch die Windows Management Instrumentation ermittelt wird.
Hierfür stellen wir Ihnen das Matrix42 PreOS Paket HardwareInfo zur Verfügung, mit dem Sie alle notwendigen Informationen ermitteln, um sie dann mit Hilfe des Matrix42 Treiberassistenten in die Steuerdatei einpflegen zu können.
- Weisen Sie dem Client eine funktionsfähige WinPE Boot Konfiguration und das Matrix42 PreOS Paket HardwareInfo zu.
- Aktivieren Sie den Client (Software- und PXE-Aktivierung).
- Starten Sie im Anschluss den Client über PXE Boot.
- Nach erfolgreicher Ausführung des Pakets finden Sie im Verzeichnis (\\%EmpirumServer%\EmpInst$\Wizard\OS\Auto\WinPeStatus\<Domäne_Computername>) eine Datei in der Form "debug_drivers_<client>.<domain>.json".
- Der Inhalt kann nun mit Hilfe des Matrix42 Treiberassistenten in die Steuerungsdatei Drivers.json importiert werden. Im Kapitel Starten des Matrix42 Treiberassistenten wird der Assistent und der Import der Informationen genauer beschrieben.
Matrix42 Treiberassistent für WinPE
Der Matrix42 Treiberassistent ist ein Werkzeug, mit dessen Hilfe die Steuerungsdatei Drivers.json angepasst werden kann. Die Steuerungsdatei wird vom Matrix42 PreOS Paket DriverIntegration verwendet, um das zu integrierende Treiberarchiv bzw. Treiberverzeichnis zu bestimmen.
Voraussetzungen
- Matrix42 Client Management (v20.0 oder neuer).
- WinPE Support 1.8.7 oder neuer
- PreOS Paket DriverIntegration 2.15 oder neuer:
- Um den Treiberassistent zu verwenden, benötigen Sie das PreOS Paket DriverIntegration 2.15 (oder höher). Ab dieser Version wird das JSON-Format unterstützt, das vom Treiberassistenten erstellt wird. Ältere Versionen von DriverIntegration unterstützen dieses JSON-Format nicht.
Aktuelle Funktionalität
Die aktuelle Funktionalität des Matrix42 Treiberassistenten für WinPE:
- Unterstützung von Treibern für die Betriebssysteme Windows 7, Windows 10, Windows Server 2016, Windows Server 2019
- Validierung der Einträge in der Steuerungsdatei Drivers.json
- Import von Treibereinträgen die durch das HardwareInfo PreOS-Paket erstellt wurden
- Import von Treibereinträgen über die Vorgängerversion der Steuerungsdatei Drivers.ini
- Automatische Migration der zuvor verwendeten Datei Drivers.ini, in die neue Datei Drivers.json, falls diese noch nicht vorhanden ist
- Importieren von Treiberdateien oder Treiberverzeichnissen
- Verweis auf bereits importierte Treiberdateien oder Treiberverzeichnisse über den Import
- Manuelles Anpassen der Steuerungsdatei
- Hinzufügen, Löschen und Anpassen von Vendor-Einträgen
- Hinzufügen, Löschen und Anpassen von Modell-Einträgen
- Anpassen von Treiberverweisen
Einschränkungen
Die folgenden Einschränkungen bestehen bei der Verwendung vom Matrix42 Treiberassistenten für WinPE:
- Aktuell kann der Treiberassistent nur auf dem Empirum-Master-Server verwendet werden.
- Die erstellte Steuerungsdatei ist erst ab dem DriverIntegration-Paket in der Version 2.15 oder höher kompatibel.
Starten des Matrix42 Treiberassistenten
- Um den Matrix42 Treiberassistenten zu starten, muss die Matrix42WinPEDriverAssistant.exe Anwendung im Verzeichnis
.\Empirum\AddOns\WinPEDriverAssistant
gestartet werden.
Stellen Sie sicher, dass der Benutzer, mit dem der Assistent gestartet wird, ausreichende Berechtigungen besitzt, um die Datei Drivers.json auf dem Empirum-Share zu öffnen, zu editieren, neu zu erstellen und zu löschen. Er sollte ebenfalls die Berechtigungen besitzen, Dateien und Verzeichnisse dort hinzukopieren
Erstellen einer Drivers.json-Datei beim ersten Start
- Der Matrix42 Treiberassistent versucht beim Starten automatisch die Treiberkontrolldatei Drivers.json auf dem Empirum-Share zu öffnen. Ist diese noch nicht vorhanden wird Ihnen angeboten, eine leere Treiberkontrolldatei erstellen lassen, in dem Sie die folgende Meldung mit Ja bestätigen.
Falls bereits manuell eine Treiberkontrolldatei erstellt wurde, wird diese Meldung nicht angezeigt, und der Matrix42 Treiberassistent öffnet sich direkt und zeigt den Inhalt der Datei an.
Migration von Drivers.ini Konfiguration aus vorherigen Versionen
- Wurde bereits in einer früheren Version die Treiberintegration über die Datei Drivers.ini umgesetzt, können Sie mit Hilfe der Importfunktion die Einträge der Datei Drivers.ini in das neue JSON Format übertragen.
Die Migration der zuvor verwendeten Datei Drivers.ini in die neue Datei Drivers.json findet beim Öffnen des Tools automatisch statt, wenn noch keine Datei Drivers.json vorhanden war.
Sobald kein DriverIntegration-Paket mit der Version kleiner als 2.15 mehr verwendet wird, kann die alte Datei Drivers.ini sicher vom Server entfernt werden.
Ab dem Paket DriverIntergration 2.15 wird die Datei Drivers.json verwendet um Treiber abzubilden, aber es ist auch in der Lage, die Datei Drivers.ini zu verwalten, wenn die Migration von INI nach JSON noch nicht stattgefunden hat.
Das Kapitel Import von HardwareInfo-Paket Ausgabedateien beschreibt die generelle Vorgehensweise beim Importieren. Allerdings importieren man in diesem Fall keine Ausgabedatei des HardwareInfo Paketes, sondern die Drivers.ini Datei, die auf dem Empirum-Server im folgenden Verzeichnis liegt:
.\Configurator$\Packages\Matrix42\OsPackages\Drivers\Drivers.ini
Die Treiberdatei oder Verzeichnisangaben in der Datei Drivers.ini werden dann in dem neuen JSON Format immer automatisch dem Windows 10 Betriebssystem zugeordnet.
Die Oberfläche des Matrix42 Treiberassistent
- Nach dem Erstellen einer leeren Treiberkontrolldatei öffnet sich der Assistent und zeigt die geöffnete Datei an.
Als oberster Eintrag wird die Treiberkontrolldatei Drivers.json und ihr Dateipfad angezeigt.
Da die Treiberkontrolldatei noch keine Einträge enthält, werden auch keine untergeordneten Herstellen- oder Modeleinträge angezeigt.
Import von HardwareInfo-Paket Ausgabedateien
Die einfachste und sicherste Variante die Treiberkontrolldatei zu erweitern, ist das Importieren der Ausgabedatei des Matrix42 PreOS Pakets HardwareInfo, die das HardwareInfo Paket automatisch im Verzeichnis .\EmpInst$\Wizard\OS\WinPeStatus\<Domäne_Computername>
erstellt. Im Kapitel Ermitteln des Herstellers und des Modells wird genauer beschreiben, wie die Ausgabedatei mit Hilfe des HardwareInfo Pakets erstellt werden kann.
Diese Ausgabedatei enthält die Informationen über den Hersteller und das Model des verwendeten Clients.
- Starten Sie den Import über die Schaltfläche Import.
Der Dateibrowser öffnet sich im Verzeichnis.\EmpInst$\Wizard\OS\WinPeStatus
mit dessen Hilfe die Ausgabedatei des HardwareInfo Pakets geöffnet werden kann.
Die Ausgabedatei des HardwareInfo Pakets liegt im Verzeichnis des Clients.
Sie können hier auch die Suchfunktion des Dateibrowsers verwenden und nach dem Client-Namen suchen. Die Ausgabedatei des HardwareInfo-Pakets enthält immer den Client-Namen und die Domäne des Clients.
- Nachdem die Ausgabedatei ausgewählt wurde, kann der Import per Öffnen gestartet werden. Der Assistent gibt dann eine Rückmeldung, welcher Hersteller und welches Model importiert wurde.
- Nach der Bestätigung mit OK wird der neue Eintrag in die Kontrolldatei eingefügt.
Für den erkannten Hersteller (Vendor) VMware, Inc. wurde ein Eintrag erstellt. Untergeordnet wurde ein Eintrag für das erkannte Model VMware7,1 erstellt.
Dem Model-Eintrag sind momentan noch keine Treiberdateien, oder Treiberverzeichnisse für die Betriebssysteme Windows7, Windows 10, Windows Server 2016 und Windows Server 2019 zugewiesen. Aus diesem Grund wird der Eintrag hellgrau hinterlegt angezeigt und mit einem Ausrufezeichen markiert. Das zeigt an, dass der Eintrag noch nicht gültig ist, da noch kein Treiber für ein Betriebssystem angegeben ist, bzw. ein angegebener Treiber nicht auf dem Empirum-Share vorhanden ist.
Konfliktsituationen beim Importieren
Beim Importieren von Ausgaben eines HardwareInfo Paketes kann es sein, dass versucht wird Modelle zu importieren, die bereits in der Treiberkontrolldatei vorhanden sind.
Sind die Angaben zum Model identisch mit bereits vorhandenen Angaben, wird die folgende Meldung angezeigt, die angibt, dass keine Änderungen notwendig sind.
Wird allerdings ein Model importiert, dass bereits vorhanden ist und bei dem sich die Treiberangaben unterscheiden, dann wird die folgende Meldung angezeigt.
Hier muss entschieden werden, ob die vorhandene Treiberangabe beibehalten, oder ob die neue Angabe übernommen werden soll. Mit Ja werden die Änderungen übernommen. Mit Nein bleiben die vorhandenen Angaben erhalten.
Treiberangaben zur den Betriebssystemen Windows 7, Windows Server 2016 und Windows Server 2019 bleiben beim Importieren immer unangetastet. Diese Treiberangaben bleiben auch beim Übernehmen der neuen Angaben unverändert.
Treiberdatei importieren
Die meisten Hersteller bieten mittlerweile sogenannte SCCM Treiber Pakete an. Diese Treiberpakete enthalten in der Regel alle Treiber, die vom Hersteller für die Installation als Treiber Installationsdatei freigegeben wurden.
Dies kann, muss aber nicht zwangsweise alle Gerätetreiber für das Hardwaremodell beinhalten. Häufig werden Treiber, die eine zusätzliche Software Komponente beinhalten, nicht in solchen Paketen erfasst. Hier bietet es sich an, diese als separate Softwarepakete auf den Client auszubringen. In der Regel ist der Umfang der Treiber in dem SCCM Paket der Dokumentation des Herstellers zu entnehmen, zumeist werden auch die nicht enthaltenen Treiber explizit gelistet.
Das Matrix42 WinPE basierte OS Deployment unterstützt aktuell sowohl nicht gepackte Treiberverzeichnisse als auch komprimierte Archive vom Typ .cab oder .zip.
- Um dem Model-Eintrag einen Treiber zuzuordnen, können Sie einen Datei- oder Verzeichnisnamen direkt in das Feld für das jeweilige Betriebssystem eintragen. In dem Fall müssen Sie sicherstellen, dass in dem Verzeichnis der Drivers.json Datei die entsprechende Datei oder das Verzeichnis vorhanden ist.
Sie können auch auf die Treiberimport Schaltfläche hinter dem jeweiligen Betriebssystemeintrag klicken, um eine Treiberdatei oder ein Treiberverzeichnis auszusuchen, dass dann auf den Empirum Share kopiert wird. - In diesem Fall wird die Treiberimport Schaltfläche des Windows 10 Eintrages gewählt, um dem Model einen Treiber für Windows 10 zu importieren.
Es öffnet sich ein Kontextmenü mit dessen Hilfe entschieden werden kann, ob eine einzelne Treiberdatei, oder ein komplettes Treiberverzeichnis importiert werden soll. - In diesem Fall soll ein einzelnes Zip-Archiv importiert werden, weswegen der Import driver file… Eintrag ausgewählt wird.
Es öffnet sich der Dateibrowser mit dessen Hilfe nun das Treiberarchiv ausgewählt werden kann.
- Wird die Auswahl mit Öffnen bestätigt, wird die ausgewählte Treiberdatei auf das Empirum-Share kopiert und der Assigned driver Wert des Model-Eintrages wird angepasst.
- Mit Hilfe der Schaltfläche Save können nun die Änderungen gespeichert werden. Es öffnet sich der Bestätigungsdialog.
- Bestätigen Sie die Meldung mit Ja, werden die Änderung in der Steuerungsdatei auf dem Empirum Server abgespeichert.
- Die Bestätigung des erfolgreichen Speichervorgangs erscheint, bestätigen Sie mit OK, dies bringt Sie zurück in die Ansicht des Treiberassistenten.
Verweise auf bereits importierte Treiberdateien oder Verzeichnisse
Mit Hilfe der Importfunktion können Sie auch Verweise auf bereits importierte Treiberdateien oder Treiberverzeichnis erstellen.
Hierzu wählen Sie beim Importieren der Treiberdatei oder des Treiberverzeichnisses einfach eine Datei oder ein Verzeichnis aus dem Drivers Verzeichnis aus. Der Treiberassistent erkennt automatisch, dass die zu importierende Datei oder das zu importierende Verzeichnis aus dem Drivers Verzeichnis kommt.
In diesem Fall wird dann die Datei oder das Verzeichnis nicht erneut importiert. Es wird nur die richtige Pfadangabe in den Treibereintrag übernommen.
Folgender Hinweis wird angezeigt:
Manuelles Erweitern
Liegen keine HardwareInfo-Paket Ausgaben vor, kann die Treiberkontrolldatei auch manuell erweitert werden. Hierzu sind der Herstellername und der Modelname eines Computers notwendig.
Neuer Vendor Eintrag
Mit Hilfe der Schaltfläche hinter dem Steuerungsdatei-Eintrag kann ein neuer Hersteller Eintrag erstellt werden.
Unter der Struktur wird ein neuer Hersteller Eintrag mit dem Standardnamen NewVendorEntry angezeigt. Der Hersteller Eintrag enthält zunächst noch keine Model-Einträge.
Der Herstellername kann nun manuell angepasst und mit Model-Einträgen erweitert werden. In diesem Beispiel wird der Hersteller Dell Inc. eingetragen.
Neuer Model Eintrag
Mit Hilfe der Schaltfläche hinter dem Hersteller-Eintrag kann ein neuer Model-Eintrag für diesen Hersteller erstellt werden.
Unter dem Hersteller erscheint ein neuer Model-Eintrag mit dem Standardnamen NewModelName.
Der Modelname kann nun manuell angepasst und ein Treiber dem Eintrag zugewiesen oder importiert werden. In diesem Fall wurde der Modelname Precision 5520 angegeben und den Betriebssystemen Windows 10 und Windows Server 2019 wurde das Treiberarchiv DELL_5520_W10.zip / DELL_5520_S19.zip zugewiesen.
Entfernen von Einträgen
Werden Hersteller (Vendor) oder Model-Einträge nicht mehr benötigt, können diese über das hinter dem jeweiligen Eintrag entfernt werden.
Beim Entfernen von Modell- oder Herstellereinträgen bleiben die zugeordneten Treiberdateien oder -verzeichnisse auf dem Empirum-Share bestehen. Sie werden dabei nicht gelöscht.
Konflikte
Beim manuellen Erweitern der Steuerungsdatei kann es zu Konflikten kommen, wenn Hersteller Einträge mit gleichem Namen erstellt werden, oder wenn man Model-Einträge mit gleichem Namen unterhalb eines Herstellers erstellt. In diesen Fällen werden die Einträge dunkelgrau hinterlegt. Außerdem wird ein Warnsymbol angezeigt.
Sind Konflikte in der Steuerungsdatei enthalten, kann die Datei nicht abgespeichert werden. Die Save Schaltfläche ist in diesen Fällen ausgegraut.
Filterungsfunktionen
Wird die Steuerungsdatei im Laufe der Zeit erweitert und bekommt dadurch immer mehr Einträge für verschiedene Hersteller und Modelle, wird die Ansicht schnell unübersichtlich. Um dennoch schnell die richtigen Einträge finden zu können, wurde eine Filterungsfunktion bereitgestellt, mit dessen Hilfe bestimmte Hersteller-, Modelle- oder Treibereinträge ausgefiltert werden können.
Die Filterungsfunktion ist zunächst deaktiviert und kann über das Symbol angezeigt werden.
Am unteren Rand des Fensters wird die Filterungsleiste angezeigt, mit dessen Hilfe nun die Filterung vorgenommen werden kann.
Es kann nach den folgenden Eigenschaften gefiltert werden:
- Herstellername
- Modelname
- Treibername
- Einträge mit Warnungen (z.B. nicht vorhandene Treiberangaben, oder Konflikte)
- Einträge mit Änderungen
Die Filtereigenschaften lassen sich auch kombinieren. Im folgenden Beispiel werden nur die Einträge angezeigt die Warnungen enthalten. Das sind zunächst zwei Einträge für Dell Inc. Precision 5521 und Microsoft Virtual Machine. Zusätzlich wird die Anzeige eingeschränkt auf das Modell, das im Namen Virtual enthält.
Filterung ausschalten
Soll die Filterung der Einträge wieder deaktiviert werden, können zum einen die Filterungswerte und Häkchen wieder entfernt werden, oder Sie schließen die Filterungsanzeige über das direkt, wodurch auch wieder alle herausgefilterten Einträge angezeigt werden.
Stellen Sie sicher, dass die Reihenfolge der Matrix42 PreOS Paket in der Depot-Konfiguration richtig ist. Die folgenden Matrix42 PreOS Pakete müssen relativ zueinander wie folgt angeordnet sein:
- DiskPartitioning
- DiskImageDeploy
- DriverIntegration
- WindowsInstallation
- PxeOffAndReboot
- LanguagePacksInstallation
- DomainJoin
- EmpirumAgentSetup
Eventuell verwenden Sie nicht alle diese Pakete. Die Pakete, die Sie verwenden, müssen allerdings in der richtigen Reihenfolge sein.