Wie kann ich die Version eines Gerätetreibers ermitteln, wenn das Gerät nicht angeschlossen ist?

8

Dank einiger anderer hilfreicher StackOverflow-Fragen habe ich eine Möglichkeit gefunden, WMI nach Gerätetreibern abzufragen. Jedoch scheint es mir, dass die Daten in verschiedenen Orten gespeichert werden, die nicht gut zusammenpassen.

Ich habe ein USB-zu-Seriell-Port-Kabel mit FTDI-Treibern. Ich kann Win32_SystemDrivers abfragen, um festzustellen, ob die Treiber installiert wurden oder nicht:

%Vor%

Aber diese Sammlung sagt mir nichts über Versionsinformationen. Dann entdeckte ich, dass ich Win32_PnPSignedDriver abfragen konnte, um die Version des Gerätetreibers zu finden. Also mache ich so etwas:

%Vor%

Dieser zweite Codeblock ist jedoch nur dann erfolgreich, wenn das Kabel (Gerät) tatsächlich eingesteckt ist. Ich möchte die Version des installierten Gerätetreibers überprüfen, unabhängig davon, ob das Gerät installiert ist oder nicht derzeit eingesteckt.

Wie mache ich das?

    
SoaperGEM 22.01.2015, 00:05
quelle

2 Antworten

3

Es scheint, Klasse Win32_SystemDriver kann Ihnen den Pfadnamen geben der zugehörigen Treiberdatei .sys.

Beispiel: "\ SystemRoot \ System32 \ drivers \ afd.sys"

Dann können Sie die .sys Dateiversion mit:

erhalten %Vor%     
rducom 30.01.2015, 12:15
quelle
3

Denken Sie daran, dass Sie das Problem mit Hühnchen und Eiern lösen wollen, niemals einen sehr gesunden Start für irgendein Programm. Plug & amp; Play in Windows basiert auf der Vorstellung, dass Gerätetreiber dynamisch lokalisiert werden können, wenn das Gerät verfügbar ist, und es bei Bedarf heruntergeladen werden kann. Das ist ein Huhn.

Sie können nur hoffen, das Ei zu finden, wenn der Treiber vorinstalliert oder bereits verwendet wurde. Nicht ganz ungewöhnlich. In diesem Fall wird es im Treiberspeicher verfügbar sein. Sie sollten es finden können, wenn Sie es aufzählen.

Ein Beispielprogramm, das dies tut, ist hier verfügbar . Geschrieben in C # also ein guter Anfang für das, was Sie wollen. Ich werde den Screenshot kopieren:

Notieren Sie sich das angezeigte Datum und die Version des Treibers, wonach Sie fragen. Beachten Sie, dass es mehr als eine einzige Version geben kann. Vielleicht möchten Sie einen Blick auf die Quelle werfen, es ist einfach sehr . Es basiert tatsächlich auf einem Windows-Dienstprogramm, um das ListView aufzufüllen, PnPUtil.exe mit der / e-Option führt den Speicher auf. Probieren Sie es aus, indem Sie es über die Befehlszeile ausführen.

Sie können den Filialinhalt auch leicht mit Explorer anzeigen, die Dateien werden in c: \ windows \ system32 \ driverstore \ filerepository gespeichert. Vielleicht nützlich, um die INF-Datei zu lesen, um zusätzliche Filter hinzuzufügen. Der INF-Dateiname, den Sie zurück erhalten, ist in der ersten Spalte des Screenshots aufgeführt und wird tatsächlich in das Verzeichnis c: \ windows \ inf kopiert.

    
Hans Passant 30.01.2015 13:09
quelle

Tags und Links