Für die OS Installation wird in SCCM ein WinPE Bootimage eingesetzt. Über die Konsole lässt sich hier auf einfache Art und Weise zusätzliche Treiber einbinden. Relevant ist dies im Allgemeinen nur für sehr neue Netzwerk bzw. SATA Treiber, da Windows 7 von Haus aus schon sehr viele Geräte unterstützt.
Manchmal ist es schwierig den passenden Treiber zu finden. Hilfreich dabei ist die PCI Device ID. Mit dieser eindeutigen ID kann man den Hersteller (VEN_XYZ) und das entsprechende Gerät (DEV_…) über eine Google Suche ermitteln.
Um diese ID zu ermitteln muss man zuerst die Kommandozeilen Option im WinPE Boot Image aktivieren (Eigenschaften des Images).
Danach kann man per F8 eine Kommandozeile auf dem System mit den fehlenden Treibern starten und per
wmic nic get PNPDeviceID
bzw.
wmic idecontroller get deviceid
die IDs ermitteln. Ein Beispiel der Ausgabe ist im folgenden Bild dargestellt:

Relevant sind hier nur die PCI\VEN… Einträge.
Zentraler Punkt in dem Script ist die Erkennung in welchem status die Installation gerade ist. Folgende Status sind möglich:
- Installation noch nicht eingeplant
- Installation eingeplant aber noch nicht gestartet
- Installation ist angelaufen aber noch nicht beendet
- Installation ist durchgelaufen
Zur Ermittlung dierer Status greifen wir wieder auf das Auslesen von PolicyInstancen zurück. Dazu werden am Anfang einige Policy-IDs definiert, die die verschiedene Status beschreiben:
Read more…
Treibermanagement in SCCM ist recht einfach gestaltet, trotzdem sollte man eine gewisse Organisation und Vorsicht walten lassen. Daher mal diesmal ein paar Basics:
Eindeutiges Zeichen für einen Fehler ist folgender Bluescreen (0xc000035a):

Schaut man sich die Boot Image Treiber genauer an, so erkennt man schnell einen Intel Storage Treiber. Unter Drivers kann man ebenfalls erkennen, dass der Treiber folgende Plattformen vorgesehen ist: “All x64 Windows Server 2003 (Non R2), All x64 Windows Server 2003 R2, All x64 Windows Server 2008, All x64 Windows Vista, All x64 Windows XP Professional […]“.
Interessant ist auch ein Blick in das Image selber. WIM Dateien kann man sehr elegant mit 7Zip anschauen. Die Datei unter 1windowssystem32drivers hat folgende Eigenschaften:

Auch hier ist eindeutig ein x64 Treiber zu erkennen. Sobald man den Treiber aus dem Boot Image entfernt und neu deployed ist der Treiber entfernt und im Image nicht mehr auffindbar. Das Booten danach funktioniert sofort wieder.
Merke: Treiber immer genau anschauen und nur in die Image/Packages hinzufügen wo sie benötigt werden. (s.a. Post zu Broadcom Treibern)
Manchmal macht es sogar Sinn sich dieEigenschaften der Treiberdatei selber anzuschauen.
Aktuell runde ich den produktiven SCCM ab. Dabei hatte ich wieder den Fall, dass die WinPE trotz installierter HP Netzwerktreibern nicht die Netzwerkkarten finden konnte (DL385G2, Onboard Nics). Ursache war vom Pilotsystem schon bekannt.
Die verbauten Broadcom Karten (NetXtreme II) haben ein etwas komplizierteres Treibermodel: Zuerst wird ein “Grundtreiber” geladen. Dieser stellt aber nur die Basis für den eigentlichen Netzwerktreiber dar. Diese zweite Schicht hat aber als PCI-ID ein Dummy ID, die erst von dem Grundtreiber zur Verfügung gestellt wird. Dieser doppelte Treiber wird momentan von einer WinPE CD nicht sauber unterstützt (da beim Booten nur ein Plug-and-Play Lauf gemacht wird).
Langer Text, kurze Lösung:
Auf den Broadcom Seiten direkt gibt es einen monolithischen Treiber, der nur eine Schicht benötigt. (http://www.broadcom.com/support/ethernet_nic/netxtremeii.php, Windows Remote Installation Service (RIS) Drivers)
Wichtig: Diesen Treiber nur in die Boot-CD hinzufügen. Nicht zu einem Treiberpaket und auch nicht zur Installation freigeben. Sonst kann es passieren, dass dieser Treiber bei der OS Installation herangezogen wird und somit nicht die volle Funktionalität der HP Treiber genutzt werden kann. (Alles schon ausprobiert
)