Archive for the ‘Kunden’ Category

D3DCompiler_43.dll oder ähnliche Datei fehlt Fehlermeldung unter Windows 10 bei 3D-Anwendungen

25 Juni 2019

Bei einigen 3D-Anwendungen wird die Datei D3DCompiler_43.dll benötigt um 3D-Objekte für die Darstellung oder Berechnung umzurechnen. Genauer gesagt, die Datei ist der “Direct3D HLSL Compiler”. Leider gibt es einige Programme, welche die erforderlichen DirectX-Dateien nicht in ihrer Distribution enthalten. Eigentlich ist es die Aufgabe des Betriebssystem oder des passenden .Net Frameworks dafür zu sorgen. Fakt ist aber, dass in diesem Bezug viel Chaos herrscht.

Das Problem äußert sich beim starten betreffender Anwendungen z. B. über diese Fehlermeldung:

Error: DLL D3DCompiler_43.dll Das angegebene Modul wurde nicht gefunden Ausnahme von HResult0x8007007E

Das Problem lässt sich lösen (sogar auf einem aktuellen Windows 10 1903), wenn man die Datei aus diesem Link herunterladet und startet: https://www.microsoft.com/de-DE/download/details.aspx?id=35. Dadurch wird der “DirectX-Endbenutzer-Runtimes Web Installer” gestartet, welche die fehlenden Dateien nachrüstet.

Diese Methode sorgt dafür, dass im SYSTEM32-Verzeichnis einige D3DCompiler-Dateien hinzugefügt werden:

D3DCompiler_33.dll
D3DCompiler_34.dll
D3DCompiler_35.dll
D3DCompiler_36.dll
D3DCompiler_37.dll
D3DCompiler_38.dll
D3DCompiler_39.dll
D3DCompiler_40.dll
D3DCompiler_41.dll
D3DCompiler_42.dll
D3DCompiler_43.dll
D3DCompiler_47.dll

Windows 10 hat von Haus aus eigentlich nur die D3DCompiler_47.dll an Bord.

Hier noch eine Variante wo .Net Framework-Updates geblockt werden, betrifft allerdings nur Versionen vor Windows 10: https://support.microsoft.com/de-de/help/4020302/the-net-framework-4-7-installation-is-blocked-on-windows-7-windows-ser

Werbeanzeigen

VirtualBox auf Mac installieren und Fehlermeldungen wegen Kernel Extensions

10 Mai 2019

Auf einem aktuellen High Sierra 10.13.6 Mac OS System sollte VirtualBox 6.0.6 installiert werden. Bereits bei der Installation von VirtualBox gab es eine Fehlermeldung, mit dem Hinweis in den Systemeinstellungen unter Sicherheit das Laden der Oracle America Treiber zuzulassen. Nur leider funktionierte die Vorgehensweise nicht. Nach mehreren Versuchen mit De- und jeweils Neuinstallation von VirtualBox lief es immer noch nicht. Man konnte zwar VirtualBox aufrufen allerdings beim Start einer neu eingerichteten VM bekam man die Fehlermeldung “Systemerweiterung wurde blockiert” rc=-1908.

Nach einigem Suchen wurde ich auf diesen Eintrag aufmerksam: https://forums.virtualbox.org/viewtopic.php?f=8&t=84092. Da wird das Problem mit möglichen Lösungswegen beschrieben. Am Ende hat aber erst dieser Artikel die Lösung gebracht: https://ilgthegeek.wordpress.com/2018/01/27/macos-install-oracle-virtualbox-on-10-13/. Apple Dokument was abläuft: https://developer.apple.com/library/archive/technotes/tn2459/_index.html.

Kurz zusammengefasst:

  1. Mac herunterfahren
  2. Mit Command-R die Wiederherstellungskonsole aufrufen
  3. Im Dienstprogrammemenü das Terminal auswählen
  4. “spctl kext-consent add VB5E2TV963” ausführen
  5. Mac neu starten

Wie kommt man an das VB5E2TV963, welches die Entwicker-ID-Signatur darstellt? Bei der Installation von VirtualBox gibt es im Installationsassistenten oben rechts ein Schlosssymbol, klickt man dieses an, erhält man die nötige Info.

Zeitsynchronisierung unter Windows forcieren

22 November 2018

Für die Zeit- und Datumseinstellungen gibt es w32tm.EXE unter Windows. In einem aktuellen Fall sollte nach Klick eines Eintrags die aktuelle Uhrzeit mit aktuellem Datum unter Windows 7 erzwungen werden.

Der erste Versuch war der Aufruf:

w32tm /resync

Aber da kam die Fehlermeldung:

Befehl zum erneuten Synchronisieren wird an den lokalen Computer gesendet.
zu groß war. wurde nicht synchronisiert, da die erforderliche Zeitänderung

Mal abgesehen davon, dass es eine absolut unverständliche Meldung ist, ist die Lösung doch sehr einfach, man ruft einfach

w32tm /resync /force

auf und schon gehts. /force ist allerdings ein undokumentierter Parameter, aber Hauptsache er funktioniert. Als Meldung erscheint dann:

Befehl zum erneuten Synchronisieren wird an den lokalen Computer gesendet.
Der Befehl wurde erfolgreich ausgeführt.

Mann kann das ganze auch per Verknüpfung mittels Powershell initiieren da man Adminrechte bracht, werden diese auch gleich angefordert:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command "& {Start-Process powershell.exe -Verb runas -ArgumentList ‚-Command ""& {Start-Service W32Time –v; w32tm.exe /resync  /force; "Aktuelle Zeit wurde gesetzt."; Start-Sleep -Seconds 5}"" ‚}"

Kaputte oder hängende Windows Updates Offline unter WinPE oder WinRE mittels DISM deinstallieren

20 September 2018

Ab und an gibt es Probleme mit Updates von Windows, welche dazu führen, dass mit dem betreffenden Rechner nichts mehr anzufangen ist. Er fährt einfach nicht mehr hoch und die üblichen Mechanismen zur Reparatur funktionieren nicht. Der normale Weg ist dann eine komplette Neuinstallation. Solange man einen Hardwaredefekt ausschließen kann muss dies nicht immer sein. Man muss nur irgendwie Zugriff auf die Festplatte des nicht funktionierenden Systems bekommen. Am einfachsten geht es mittels WinPE oder WinRE.

Nun verwendet man DISM.EXE um mit Images zu arbeiten, allerdings muss man immer mittels Parameter sagen, um welches Images es sich handelt. Images bezieht sich in diesem Zusammenhang auf eine Windowsinstallation. Dazu muss zuerst in Erfahrung gebracht werden, unter welchem Laufwerksbuchstaben das zu betreuende Windows verfügbar ist. Anschließend wird DISM immer mit dem Parameter /image:<LW> aufgerufen, wobei <LW> der Laufwerksbuchstabe des zu bearbeitenden Windows ist.

Zum Auflisten der installierten Updates verwendet man:

DISM /Image:C: /Get-Packages


Paketidentität : Package_for_KB4456655~31bf3856ad364e35~amd64~~17134.281.1.1
Status : Installiert
Versionstyp : Update
Installationszeit : 11.09.2018 20:03

Paketidentität : Package_for_KB4457146~31bf3856ad364e35~amd64~~10.0.1.0
Status : Installiert
Versionstyp : Security Update
Installationszeit : 11.09.2018 20:04

Paketidentität : Package_for_RollupFix~31bf3856ad364e35~amd64~~17134.228.1.6
Status : Abgelöst
Versionstyp : Security Update
Installationszeit : 15.08.2018 22:33

Paketidentität : Package_for_RollupFix~31bf3856ad364e35~amd64~~17134.285.1.7
Status : Installiert
Versionstyp : Security Update
Installationszeit : 15.09.2018 03:07

Der Vorgang wurde erfolgreich beendet.

Hat man nun ein Problem mit einem Update dann deinstalliert man dies, indem man die Paketidentität angibt:

DISM /Image:C: /Remove-Package /PackageName:Package_for_RollupFix~31bf3856ad364e35
~amd64~~17134.285.1.7

Am Ende sollte noch aufgeräumt werden:

DISM /Image:C: /CleanUp-Image /RevertPendingActions

Der Parameter RevertPendingActions kann auch in anderen Situationen angewandt werden: https://blogs.technet.microsoft.com/joscon/2009/10/15/getting-out-of-a-no-boot-situation-after-installing-updates-on-windows-7-2008r2/.

Wenn das Entfernen des letzten Updates nicht hilft, könnte das weitere Entfernen von Updates helfen.

Übrigens kann man obige Befehle auch auf eine laufende Instanz von Windows anwenden indem einfach anstatt /Image:C: /Online angibt.

Chrome unter Windows 10 ladet und baut Seiten nur langsam auf und bricht teilweise auch mit einer Fehlermeldung ERR_TIMED_OUT ab

4 September 2018

Chrome, der Marktführer unter den Browsern, kann in bestimmten Fällen ein seltsames Verhalten an den Tag legen. Beim Aufruf einer Seite baut diese nur sehr langsam oder gar nicht auf. Dabei sieht man unten links eine Statusmeldung mit dem Text

Sichere Verbindung wird hergestellt…

Vor allem bei Seiten die sich massenweise Tracking-Cookies oder Werbeinhalte aus verschiedensten Quellen holen, die also aus verschiedensten Domains Inhalte nachladen, kann dies ziemlich lange dauern. Im Extremfall führt es zu dieser Fehlermeldung:

ERR_TIMED_OUT

Der erste Gedanke für so einen Fall könnte eine Infektion des Rechners sein, wie hier jemand denkt: https://www.trojaner-board.de/189359-google-chrome-laedt-langsam-warten-diverse-homepages.html. Aber das konnte im aktuellen konkreten Fall ausgeschlossen werden. Auch war keiner der bekannten Antivirenscanner der Übeltäter. Weiter könnten noch Probleme mit IPv6 eine Rolle spielen oder einfach Probleme mit dem Router. Aber all diese Punkte lassen sich ganz schnell aus der Welt schaffen, indem man einfach prüft wie Edge reagiert. Mit Edge waren die Seiten ohne Probleme ladbar.

Auch Chrome zu deinstallieren und komplett neu zu installieren, explizit als 64-Bit Version, brachte keine Hilfe.

Es scheint also ein Chrome spezifisches Problem zu sein. Da Chrome gerne mit technischen Neuerungen glänzt, lag die Vermutung nahe, dass evtl. schon TLS 1.3 zum Einsatz kommt, aber das explizite Abschalten brachte auch keine Änderung. Sicher nutzen aktuelle Server nur selten TLS 1.3 aber es hätte ja sein können, dass eine Entscheidungsroutine ob 1.3 oder 1.2 verwendet wird Probleme machte. Aber wie gesagt brachte das auch nichts.

Beim weiteren Durchforsten des Internets kam dann auch einmal jemand und meinte, man müsse den Kryptographiedienst (Dienstname CryptSvc) von Windows neu starten. Da beim Aufbau einer sicheren Verbindung die Kryptographie eine Rolle spielt, war dies nicht so abwegig und brachte wohl auch eine Beschleunigung. Allerdings wenn Chrome verlassen und neu gestartet wurde, war alles wieder beim alten.

Bei weiterer Recherche kam dann dieser Bug von Chrome zutage: https://bugs.chromium.org/p/chromium/issues/detail?id=838707, “Win10 Spring Update 1803 causes ERR_TIMED_OUT”. Hier sind alle Probleme exakt beschrieben, auch dass Windows 10 v1803 zum Einsatz kam war der Fall.

In dem Bug-Thread werden einige Problemlösungen angedeutet, die effektivste Methode scheint aber zu sein, wenn der Kryptographiedienst mit anderen Rechten gestartet wird. Infos zur Aufgabe des Kryptographiedienstes: https://docs.microsoft.com/en-us/windows-server/security/windows-services/security-guidelines-for-disabling-system-services-in-windows-server#cryptographic-services. Standardmäßig wird er mit dem Netzwerkdienst-Konto (NT AUTHORITY\NETWORK SERVICE) gestartet. Wenn man nun bei den Eigenschaften des Dienstes dies auf Lokales Systemkonto (NT AUTHORITY\SYSTEM) ändert, dann scheint Chrome zufrieden zu sein und läuft wieder normal schnell.

In Powershell sieht diese Änderung so aus:

$svc = Get-WmiObject Win32_Service –filter "name=’CryptSvc’"
$svc.Change($null,$null,$null,$null,$null,$null,"LocalSystem", $null)
$svc.StopService()
$svc.StartService()

Eine weitere Variante das Problem zu lösen ist in der Registrierung rumzutoben und z. B. ProtectedRoot zu löschen aber das wäre noch sensibler als die Berechtigung des Diensts zu ändern.

Nicht auszuschließen ist, dass es sich evtl. um ein Problem im Zusammenhang mit Spectre handelt… Wer weiß das heute schon?

Server bootet nicht nach Installation einer Intel I350-T2V2 Netzwerkkarte

30 April 2018

Bei einer Aufrüstung eines Hyper-V Servers mit einer “Intel Ethernet Server Adapter I350-T2V2”-Karte bootete der Rechner nach dem Einstecken der Netzwerkkarte nicht mehr. Nicht einmal das BIOS des Rechners war erreichbar. Statt dessen erschien nur oben links ein blinkender Cursor auf schwarzem Hintergrund.

Der Server selber war schon etwas älter deshalb gab es keine BIOS-Updates. Was also tun? Die Beschreibung auf dieser Seite brachte die Lösung: https://communities.intel.com/thread/56362.

Im Prinzip war das Flashen der Firmware der Netzwerkkarte notwendig. Das passende Utility war dieses hier: https://downloadcenter.intel.com/download/19186, das sogenannte “Intel® Ethernet Connections Boot Utility, Preboot Images, and EFI Drivers”.

Jetzt wurde nur noch ein Rechner benötigt, der mit der Karte bootete, tatsächlich konnte ein anderer, älterer Windows-Rechner mit eingesteckter Karte problemlos booten. Damit konnte dann mittels (es war ein 32-Bit Windows, bei 64-Bit ist der Aufruf leicht anders)

BOOTUTILW32.EXE

die Netzwerkkarte ermittelt werden und mittels

BOOTUTILW32.EXE –up PXE –nic 1

aktualisiert werden. Zuvor musste aber noch die Datei BootIMG.FLB aus dem übergeordneten Verzeichnis in das Verzeichnis der BOOTUTILW32.EXE kopiert werden.

Mit dem Boot Utility wurde die Firmware der Netzwerkkarte von der Version 1.3.98 auf die Version 1.5.85 aktualisiert. Danach konnte der ursprüngliche Rechner mit der Netzwerkkarte problemlos gebootet und eingerichtet werden.

Apple iPhone taucht nicht im Windows Explorer auf, kein Zugriff auf Bilder möglich weil MTP fehlt

9 Februar 2018

Auf einem Rechner mit Windows 10 v1709 (64-Bit) schloss man per USB ein iPhone 7 an, es tauchte aber kein Eintrag im Windows Explorer auf. iTunes mit der aktuellen Version war auch installiert, also sollten alle Treiber aktuell verfügbar sein. Das manuelle aktualisieren der Treiber im Gerätemanager wurde auch immer nur mit der Meldung bestätigt, dass man bereits den aktuellen Treiber hat. Was tun?

Die Lösung ist relativ simpel. Man muss nur im Gerätemanager bei den USB-Controllern auf den Eintrag “Apple Mobile Device USB Driver” gehen und die Eigenschaften öffnen. Nun geht man auf das Register Treiber und klickt auf “Treiber aktualisieren”. Im nächsten Dialog klickt man “Auf dem Computer nach Treibern suchen” und dann auf “Aus einer Liste der verfügbaren Treiber auf meinem Computer auswählen”. Es stehen nun zwei Treiber zur Auswahl, der bereits bekannte “Apple Mobile Device USB Driver” und der “MTP-USB-Gerät”-Treiber. Wir wählen den MTP-Treiber. Wird der Treiber installiert, taucht automatisch im Gerätemanager der Eintrag “Tragbare Geräte” auf unter dem dann “Apple iPhone” zu sehen ist.

Nun ist auch das iPhone im Windows Explorer zu finden und nach Freigabe vom iPhone kann man nun problemlos auf den DCIM-Ordner des iPhone zugreifen.

Festplatten Kontingente bzw. Diskquota unter Windows mittels Kommandozeile setzen

28 September 2017

Da ein Server eines Kunden mitten in der Migration steckte war nirgends das passende Menü zu finden um die Speicherplatzkontingente zu setzen. Vom neuen Server war noch nichts zu sehen, obwohl die Benutzer bereits auf dem neuen Server umgezogen waren.

Die Lösung brachte dann die Verwendung der Kommandozeile in Form von FSUTIL.EXE, denn darüber konnte auf dem alten Server problemlos das Kontingent verändert werden.

C:\>fsutil quota
—- QUOTA Unterstützte Befehle —-

disable         Aktiviert Kontingentnachverfolgung und -durchsetzung.
track           Aktiviert Kontingentnachverfolgung.
enforce         Aktiviert Kontingentdurchsetzung.
violations      Zeigt Kontingentüberschreitungen an.
modify          Legt das Datenträgerkontingent für einen Benutzer fest.
query           Fragt Datenträgerkontingente ab.

So kann mittels “fsutil quota modify” das neue Kontingent gesetzt werden.

“Wie soll diese Website geöffnet werden?”-Dialog wegbekommen

10 März 2017

In bestimmten Situationen, vor allem nach einer Installation oder Deinstallation eines Programms, kann es bei einem neu eingerichteten Windows 10 dazu kommen, dass ein Dialog geöffnet wird mit dem Text:

Wie soll diese Website geöffnet werden?

App verwenden
—–
Standardbrowser verwenden

[  ]  Immer diese App zum Öffnen von <Website> verwenden

OK

Da die Installationen oder Deinstallationen meistens mit Adminrechten durchgeführt werden, kann es zu einer Situation kommen, wenn man die Meldung nicht beachtet und der eigentliche administrative Vorgang bereits abgeschlossen ist, dass die Meldung weiterhin am Bildschirm stehen bleibt und nicht mehr wegzubekommen ist. Das hat mit den fehlenden Rechten des Standardbenutzers nach der Installation zu tun.

Was also tun?

Entweder Rechnerneustart oder im Taskmanager die Datei OpenWith.EXE beenden.

Treiber von Windows 10 im Windows Server 2016 installieren wenn es keine offiziellen Treiber gibt, am Beispiel einer Intel-Netzwerkkarte

7 März 2017

Eigentlich sind sich Windows 10 und Windows Server 2016 recht nahe, je nach Versionsstand von Windows 10. Dennoch gibt es manchmal bei der verwendeten Hardware Einschränkungen in Bezug auf Treiber. In einem aktuellen Fall war in einem Rechner eine Intel I219-V Netzwerkkarte verbaut. Dieser Karte genügt natürlich heutigen Managementansprüchen in Servern nicht unbedingt und deshalb wurde in Server 2016 die Treiberunterstützung für diese Karte unterlassen. Was an dieser Karte aber komisch ist, ist dass es eine Zertifizierung im Windows Server Katalog dafür gibt: https://www.windowsservercatalog.com/item.aspx?idItem=985d89e0-d6d1-b9e0-654c-0209df71a8c7&bCatID=1468.

Was kann man machen um die Karte trotzdem nutzen zu können? Früher ging man her und änderte die zugehörige Treiber-INF-Datei und aktivierte die Windows 10 Treiber für Server 2016. Diese Methode wurde seit Windows Vista Zeiten immer schwieriger. Man benötigt nun passende Zertifikate, damit Änderungen an INF-Dateien autorisiert sind. Man kann aber in Server 2016 noch die bewährte Methode gehen, die Überprüfung der Treibersignatur auszuschalten, dann installiert man einmal die Treiber, ladet und segnet sie ab. Danach aktiviert man wieder die Prüfung der Treibersignaturen. Nun kann man die Geräte mit Windows 10 Treibern unter Windows Server 2016 nutzen.

Für obiges Beispiel beschreibt dieser Blogartikel den Vorgang sehr schön: http://blog.citrix24.com/install-windows-server-2016-core-intel-nuc/.

Hier mache ich aber eine komplette Beschreibung wegen ein paar Besonderheiten und weil oft Blogs im Internet auch verschwinden.

Ermittlung der HardwareID
Fangen wir an die betreffenden Geräte ausfindig zu machen. Normalerweise würden erkannte Netzwerkadapter mittels Get-NetAdapter auftauchen. Aber die Intel I219-V ist nicht dabei. Nun kann man wie im Blogartikel beschrieben mittels

GetWMIObject win32_PNPEntity |select name,deviceid |where {$_.Name match "Ethernet"}

die HardwareID ermitteln, welche

name     : Intel(R) Ethernet Connection I219-V
deviceid : PCI\VEN_8086&DEV_1570&SUBSYS_20638086&REV_21\3&11583659&0&FE

ergibt. Von dieser Info ist die VEN_8086&DEV_1570 von Bedeutung. Im Blogartikel wird noch eine zweite Variante genannt, die bezieht sich auf die WLAN-Karte, welche nicht unter Ethernet zu finden ist, sondern unter Network. Wenn man allerdings unter einem deutschsprachigen Windows diesen Befehl ausführt

GetWMIObject win32_PNPEntity |select name,deviceid |where {$_.Name match "Network"}

dann erscheint nicht die gesuchte Info, sondern

name                                   deviceid
—-                                   ——–
Microsoft Kernel Debug Network Adapter ROOT\KDNIC\0000

weil es Network nicht gibt. Man muss statt dessen nach

GetWMIObject win32_PNPEntity |select name,deviceid |where {$_.Name match "Netzwerkcontroller"}

suchen, um z. B. dieses Ergebnis zu bekommen:

name     : Netzwerkcontroller
deviceid : PCI\VEN_8086&DEV_24F3&SUBSYS_90108086&REV_3A
\4&A711841&0&00E0

Blöd und umständlich so was. Aber wir sind ja auf Server 2016, da gibt es neuere Möglichkeiten Hardwaredinge abzufragen:

Get-PnpDevice -Class Net| select status, friendlyname, instanceid|fl *

status       : OK
FriendlyName : Intel(R) Ethernet Connection I219-V
InstanceId   : PCI\VEN_8086&DEV_1570&SUBSYS_20638086&REV_21\3&11583659&0&FE

status       : Error
FriendlyName : Netzwerkcontroller
InstanceId   : PCI\VEN_8086&DEV_24F3&SUBSYS_90108086&REV_3A
\4&A711841&0&00E0

Prima. Hier sehen wir auch gleich, dass es beim Wirelesscontroller ebenso Probleme gibt, weil dort der Status Error steht. Dies war beim I219-V am Anfang natürlich auch, allerdings sind hier im Beispiel bereits die LAN-Treiber geladen.

Wir müssen uns also nur merken, dass wir anstatt der WMI-Abfrage von Win32_PNPEntity auch direkt Get-PnPDevice –Class Net verwenden können.

Treiber herunterladen und entpacken
Neben der HardwareID benötigen wir auch die passenden Treiber von Windows 10. In diesem Fall waren diese unter https://downloadcenter.intel.com/de/download/ unter dem Stichwort ProWin und ProsetWireless zu finden. Damit man aber mit den Dateien etwas anfangen kann, müssen diese aber entpackt werden. Leider wird es immer mehr zur Unsitte nicht mehr hinzuzuschreiben, wie man Treiber nur entpacken aber nicht installieren kann. Im Zweifel verwendet man 7zip um die Treiber aus den .EXE-Dateien zu extrahieren.

INF-Datei modifizieren
So nun muss man zu den IDs den passenden Treiber finden. Dazu ruft man

Get-ChildItem –Recurse | Select-String –Pattern "VEN_8086&DEV_1570" | group Path | select name

Name
—-
D:\IntelTreiber\PRO1000\Winx64\NDIS62\e1d62x64.inf
D:\IntelTreiber\PRO1000\Winx64\NDIS63\e1d63x64.inf
D:\IntelTreiber\PRO1000\Winx64\NDIS64\e1d64x64.inf
D:\IntelTreiber\PRO1000\Winx64\NDIS65\e1d65x64.inf

auf. Dabei sollte man bereits im Pfad stehen, wo man die Treiber entpackt liegen hat.

Eine Frage ergibt sich, welche Datei man nun bearbeitet? Im konkreten Fall die e1d65x64.inf. Mit den kryptischen Versionen 62, 63, 64 und 65 ist die NDIS-Version gemeint. Windows Server 2016 beherrscht zwar bereits NDIS 6.60 aber ist abwärtskompatibel, deshalb die 65 für Version 6.50. Hier findet man ein paar Infos zu den verschiedenen NDIS-Versionen bei Windowsversionen: https://en.wikipedia.org/wiki/Network_Driver_Interface_Specification.

Man ladet nun die INF-Datei einfach in Notepad, im obigen Beispiel so:

Notepad D:\IntelTreiber\PRO1000\Winx64\NDIS65\e1d65x64.inf

Nun müssen wir uns die Sektionen [Intel.NTamd64.10.0.1] und [Intel.NTamd64.10.0] genauer ansehen. Kurz die 10.0.1 steht für Windows Clientversionen, und 10.0 für Server.

Die Sektionen haben bei INF-Dateien eine besondere Bedeutung. Das lustige ist, dass in der betreffenden INF-Datei nicht nur Windows 10 sondern auch Server 2016 Informationen stehen, ja sogar explizit für die I219-V Netzwerkkarte. Allerdings wurde im für Server entscheidenden Abschnitt die I219-V ausgelassen!

Mehr Infos zu den Herstellerangaben bei INF-Dateien findet man hier, da wird auch der genaue Aufbau der Sektionsnamen beschrieben: https://msdn.microsoft.com/de-de/windows/hardware/drivers/install/inf-manufacturer-section.

Man fügt also unter [Intel.NTamd64.10.0] diesen Eintrag hinzu

%E1570NC.DeviceDesc%            = E1570.10.0.1,       PCI\VEN_8086&DEV_1570
%E1570NC.DeviceDesc%            = E1570.10.0.1,       PCI\VEN_8086&DEV_1570&SUBSYS_00008086
%E1570NC.DeviceDesc%            = E1570.10.0.1,       PCI\VEN_8086&DEV_1570&SUBSYS_00011179

dabei müsste auch

%E1570NC.DeviceDesc%            = E1570,       PCI\VEN_8086&DEV_1570
%E1570NC.DeviceDesc%            = E1570,       PCI\VEN_8086&DEV_1570&SUBSYS_00008086
%E1570NC.DeviceDesc%            = E1570,       PCI\VEN_8086&DEV_1570&SUBSYS_00011179

funktionieren und stellt sogar die sicherere Variante dar.

Treibersignaturprüfung ausschalten
Jetzt kommt der eigentlich wichtigste Punkt. Ohne diesen bekommt man die Sache nicht zum Laufen.

bcdedit /set LOADOPTIONS DISABLE_INTEGRITY_CHECKS
bcdedit /set TESTSIGNING ON
bcdedit /set NOINTEGRITYCHECKS ON

Für diese Änderung muss allerdings der Rechner neu gestartet werden, also

Restart-Computer

Treiber installieren
Nun kommt der spannende Moment, wenn man die Treiber lädt, ob es klappt.

pnputil.exe -i -a D:\IntelTreiber\PRO1000\Winx64\NDIS65\e1d65x64.inf

Wenn dann so was ausgegeben wird, hat alles geklappt:

Microsoft-PnP-Hilfsprogramm

Verarbeitungsinf.:            e1d65x64.inf
Der Treiber konnte auf einem Gerät dieses Systems installiert werden.
Das Treiberpaket wurde erfolgreich hinzugefügt.
Veröffentlichter Name:            oem2.inf

Versuche gesamt:              1
Anzahl erfolgreicher Importe: 1

Abschlussarbeit
Natürlich muss man nun die Treibersignaturprüfung wieder aktivieren.

bcdedit /set LOADOPTIONS ENABLE_INTEGRITY_CHECKS
bcdedit /set TESTSIGNING OFF
bcdedit /set NOINTEGRITYCHECKS OFF