Marco Radoux von machines.de schrieb mich an mit einem Beitragsvorschlag basierend auf seiner Erfahrung mit DPInst.exe beim Umzug einer Windows 7-Installation auf einen Intel NUC6i5.

Grundsätzlich sollte vor jedem Umzug geprüft werden, ob das Betriebssystem mit der neuen Hardware kompatibel ist. Im Fall der Intel NUCs lohnt ein Blick auf die Homepage des Herstellers:

Intel Support – Supported Operating Systems for Intel® NUC Products

Der Umzug ansich ist dabei nicht das eigentliche Problem, sondern der Umstand, das diverse Treiber nicht in Windows 7 integriert sind und man nach dem Umzug z.B. aufgrund fehlender USB 3.x- und Netzwerktreiber das System weder an der Konsole noch aus der Ferne steuern kann.

Abhilfe kann vorab das Installieren der notwendigen Treiber schaffen. Alternativ ließe sich ein Skript erstellen, das automatisch beim ersten Start auf der neuen Hardware ausgeführt wird und die Treiber installiert. Imho gefällt mir vorab die Treiber zu installieren besser. An dieser Stelle kommt DPInst ins Spiel:

Driver Package Installer (DPInst) ist bzw. war Teil des Windows Driver Kit (WDK). Ab dem Windows 10 Version 1607 WDK ist es nicht mehr enthalten (siehe DIFx Guidelines), d.h. zuletzt war es in Version 1511 enthalten. Aktuell findet sich der Downloader noch hier:

http://download.microsoft.com/download/C/E/1/CE19C726-6036-4443-845B-A652B0F48CD7/wdk/wdksetup.exe

Genau genommen handelt es sich bei diesem WDK um Version 10.0.10586.0. Nach der Installation findet sich die für die Sprache und der 32-/64-bit Architektur passende Version unter

C:\Program Files (x86)\Windows Kits\10\redist\DIFx\dpinst

Für diesen Beitrag wurde zum Test die Version aus

C:\Program Files (x86)\Windows Kits\10\redist\DIFx\dpinst\MultiLin\x64

unter Windows 8.1 Enterprise (Evaluierungsversion) verwendet. Diese *.exe-Datei auf das Zielsystem in einen Ordner (z.B. “C:\Driver”) kopieren. Anschließend die Treiber-Dateien (min. *.inf, *.sys) in den gleichen Ordner kopieren. Möchte man Unterordner verwenden, so muss auf eine Batch- oder XML-Datei zurückgegriffen werden (siehe weiter unten). Für diesen Beitrag bzw. zum Test wurde der Treiber eines Adaptec 8405E verwendet. “dpinst.exe” via Rechtsklick und “Als Administrator ausführen” mit erhöhten Rechten starten und dem Assistenten folgen. Je nach Umfang der Treiber-Installation erscheint nach einer gewissen Zeit der finale Dialog:

Dieser Vorgang kann mittels Skript automatisiert werden, siehe dazu:

MS TechNet Blog – Driver installation and updating made easy: DPInst.exe

MS TechNet – Driver Package Installer (DPInst)

MS TechNet – Customizing Driver Installation

Cmehren.de – DPInst Treiber Installation

Unter “C:\Windows\DPINST.LOG” wird ein Protokoll erstellt, das ggf. bei der Fehlersuche hilfreich ist. Von dieser Installation sieht das Protokoll wie folgt aus:

INFO:   ****************************************
INFO:   11/08/2017 21:14:38
INFO:   Product Version 2.1.0.0.
INFO:   Version: 6.0.6000 
INFO:   Platform ID: 2 (NT)
INFO:   Service Pack: 0.0
INFO:   Suite: 0x0100, Product Type: 1
INFO:   Architecture: AMD64.
INFO:   Interactive Windows Station
INFO:   Command Line: '"C:\Driver\dpinst.exe" '
INFO:   DPInst is not multi-lingual.
INFO:   ****************************************
INFO:   Current working directory: 'C:\Driver'
INFO:   Running on path 'C:\Driver'
INFO:   No valid 'dpinst.xml' file provided.
INFO:   Found driver package: 'C:\Driver\adpenc.inf'.
INFO:   Found driver package: 'C:\Driver\arcsas.inf'.
INFO:   Preinstalling 'c:\driver\adpenc.inf' ...
INFO:   ENTER:  DriverPackagePreinstallW
SUCCESS:c:\driver\adpenc.inf is preinstalled.
INFO:   RETURN: DriverPackagePreinstallW  (0x0)
INFO:   ENTER:  DriverPackageGetPathW
INFO:   RETURN: DriverPackageGetPathW  (0x0)
INFO:   Preinstalling 'c:\driver\arcsas.inf' ...
INFO:   ENTER:  DriverPackagePreinstallW
SUCCESS:c:\driver\arcsas.inf is preinstalled.
INFO:   RETURN: DriverPackagePreinstallW  (0x0)
INFO:   ENTER:  DriverPackageGetPathW
INFO:   RETURN: DriverPackageGetPathW  (0x0)
INFO:   ENTER:  DriverPackageInstallW
INFO:   Installing INF file 'c:\driver\adpenc.inf' (Plug and Play).
INFO:   Looking for Model Section [ADAPTEC_device.NTamd64]...
INFO:   No matching devices found in INF "C:\Windows\System32\DriverStore\FileRepository\adpenc.inf_amd64_875b5554aac4a142\adpenc.inf" on the Machine.
INFO:   No drivers installed. No devices found that match driver(s) contained in 'C:\Windows\System32\DriverStore\FileRepository\adpenc.inf_amd64_875b5554aac4a142\adpenc.inf'.
INFO:   RETURN: DriverPackageInstallW  (0xE000020B)
INFO:   No matching device was found for 'c:\driver\adpenc.inf'. Driver will be installed when plugged in.
INFO:   ENTER:  DriverPackageInstallW
INFO:   Installing INF file 'c:\driver\arcsas.inf' (Plug and Play).
INFO:   Looking for Model Section [ADAPTEC.NTamd64.6.2]...
INFO:   No matching devices found in INF "C:\Windows\System32\DriverStore\FileRepository\arcsas.inf_amd64_36103e6b6a2652f6\arcsas.inf" on the Machine.
INFO:   No drivers installed. No devices found that match driver(s) contained in 'C:\Windows\System32\DriverStore\FileRepository\arcsas.inf_amd64_36103e6b6a2652f6\arcsas.inf'.
INFO:   RETURN: DriverPackageInstallW  (0xE000020B)
INFO:   No matching device was found for 'c:\driver\arcsas.inf'. Driver will be installed when plugged in.
INFO:   Created entry in Add or Remove Programs for 'C:\Windows\System32\DriverStore\FileRepository\adpenc.inf_amd64_875b5554aac4a142\adpenc.inf'.
INFO:   Created entry in Add or Remove Programs for 'C:\Windows\System32\DriverStore\FileRepository\arcsas.inf_amd64_36103e6b6a2652f6\arcsas.inf'.
INFO:   Returning with code 0x200
INFO:   11/08/2017 21:17:34

In diesem Fall “meckert” das System an, dass das Gerät nicht vorhanden ist, der Treiber wurde Windows dennoch bekannt gemacht, so das der Treiber instaliert wird, sobald es das entsprechende Gerät vorfindet.