Ich verwende DPInst (Driver Package Installer) gerne um Treiber, nachträglich per SCCM, zu verteilen und um Treiber für Geräte bereitzustellen, die während der Windows Installation nicht angeschlossen sind. DPInst besteht aus jeweils einer „.exe“-Datei für 32- und 64-Bit Windows. Das Tool ist unkompliziert und Arbeitet problemlos. Es gibt jedoch ein paar Dinge zu beachten.
Update: Achtung! Die „dpinst.exe“ ist im aktuellen WDK leider nicht mehr enthalten. Laut Kommentaren ist es allerdings noch in folgender Version enthalten: http://download.microsoft.com/download/C/E/1/CE19C726-6036-4443-845B-A652B0F48CD7/wdk/wdksetup.exe
WDK installieren (um dpinst.exe zu erhalten)
Die Datei „dpinst.exe“ wird leider nicht separat zum Download angeboten. Sie ist allerdings im Windows Driver Kit (WDK) enthalten.
Das WDK könnt ihr über folgenden Link herunterladen: https://msdn.microsoft.com/de-de/windows/hardware/hh852365.aspx
http://download.microsoft.com/download/C/E/1/CE19C726-6036-4443-845B-A652B0F48CD7/wdk/wdksetup.exe
Auf der Webseite wählt ihr „Installieren des Windows-Treiberkits (WDK) 10“, dann startet der Download der „wdksetup.exe“
Führt die heruntergeladene wdksetup.exe aus und folgt dem Installations-Wizard. Der Installer lädt noch einige Dateien herunter, ca. 850 MB. Es gibt auch die Möglichkeit, die Dateien für einen Computer ohne Internet herunter zu laden.
Die nachfolgende Meldung ist für uns nicht relevant und kann ignoriert werden.
Nach der Installation findet man die „dpinst.exe“ unter dem Pfad C:\Program Files (x86)\Windows Kits\10\redist\DIFx\dpinst\MultiLin\x64
für 64 Bit Betriebssysteme und C:\Program Files (x86)\Windows Kits\10\redist\DIFx\dpinst\MultiLin\x86
für 32 Bit Betriebssysteme. Bitte beachtet, dass die 32 Bit Variante unter einem 64 Bit Windows nicht funktioniert.
DPInst Parameter
Ein Beispiel für die „silent“ Ausführung, über die Kommandozeile, sieht so aus: „dpinst.exe" /S /C /F /L 1033 /SE /SA /SW /PATH "%~dp0extracted"
Die Parameter haben folgende Bedeutung:
/C
: log Meldungen in der Kommandozeile anzeigen
/F
: Treiber für ein Gerät installieren, auch wenn ein besserer Treiber bereits vorhanden ist
/L <SPRACH-ID>
: Texte und Bilder werden entsprechend der Sprach-ID konfiguriert. Deutsch:1031, Englisch:1033
/S
: Silent installieren
/SA
: kein Eintrag unter „Programme und Funktionen“ in der Systemsteuerung
/SE
: EULA Anzeige unterdrücken
/PATH
: Pfad zum Treiber Ordner (Achtung! Unterordner müssen per XML angegeben werden)
Weitere Kommandozeilen Parameter findet man bei Microsoft: https://msdn.microsoft.com/en-us/library/windows/hardware/ff544775(v=vs.85).aspx
Die Deinstallation von Treibern kann über folgenden Aufruf gestartet werden: DPInst.exe /u <Pfad zur INF>
Weitere Informationen zur Deinstallation findet ihr bei Microsoft: https://msdn.microsoft.com/en-us/library/windows/hardware/ff553603(v=vs.85).aspx
DPInst Return Codes
DPInst verwendet eigene Return Codes und hält sich nicht an den gewohnten Standard. Das kann unter anderem bei SCCM zu Fehlermeldungen führen, obwohl die Installation erfolgreich war.
Die Return Codes haben folgenden Aufbau: 0xAABBCCDD
Code-Anteil | Bedeutung |
AA | 3 Möglichkeiten: „80“ Ein Treiber Paket konnte nicht installiert werden. „40“ Ein Neustart ist notwendig. „00“ Keines von den vorherigen beiden trifft zu |
BB | Anzahl der Treiber Pakete die nicht installiert werden konnten |
CC | Anzahl der Treiber die in den Treiber Store kopiert wurden, aber nicht für ein Gerät installiert wurden (trifft zu wenn das Gerät z.B. nicht angeschlossen ist) |
DD | Anzahl der Treiber die für ein Gerät installiert wurden |
Beispiele:
0x100: 1 Treiber wurde erfolgreich installiert, aber nicht für ein vorhandenes Gerät installiert
0x1: Treiber wurde erfolgreich installiert
0x8000000: Der Treiber konnte nicht installiert werden
DPInst Treiber Paket erstellen
Um ein Paket zu erstellen, sollte immer die Datei dpinst.exe mitgegeben werden. Bei einer Größe von ca. 1 MB ist das zu verschmerzen. Der Treiber selbst muss natürlich auch mitgeliefert werden. Der Übersicht halber lege ich diesen in einem Unterordner ab. Das ganze wird dann über eine Batch Datei ausgeführt.
Die Batch Datei enthält die Kommandozeile, die ich bereits bei den Parametern gezeigt habe.
Hinweis: %~dp0
verweist auf den Ausführungspfad der Batch-Datei. Der Strich danach ist der Cursor, den ich zur optischen Trennung dort platziert habe.
Die Ausführung wird detailliert Protokolliert. Der Return Code 0x100
bedeutet, dass ein Treiber installiert wurde.
Die Treiber können nach der Installation für Geräte gewählt werden (hier über „Drucker hinzufügen“). Wenn ein neues Gerät angeschlossen wird, wird der Treiber automatisch ausgewählt. Vorausgesetzt, es ist kein besserer vorhanden.
Die Datei DPINST wurde aus dem aktuellstem WDK für Windows 10 entfernt
Danke für die Info! Ich werde das zu Beginn des Artikels erwähnen.
Danke für die Beschreibung;
bei mir werden in ..redist nur die Unterverzeichnisse offreg und wdf erstellt – von DIFx weit und breit keine Spur…
Sind noch irgendwelche Vorbedinungen notwendig, damit dieser Zweig mitinstalliert wird ?
Thomas Illies
Wie Ansgar Geers schreibt, ist die dpinst.exe leider nicht mehr im aktuellen WDK enthalten. Sobald ich eine neue Möglichkeit gefunden habe werde ich den Artikel aktualisieren.
wdksetup.exe Build 1511 lässt sich derzeit noch per Direktlink herunterladen: http://download.microsoft.com/download/C/E/1/CE19C726-6036-4443-845B-A652B0F48CD7/wdk/wdksetup.exe