web-dev-qa-db-fra.com

Obtenir la version pilote via la ligne de commande Windows

Existe-t-il une possibilité d'obtenir la version pilote installée via une ligne de commande sur un système Windows 7.

J'ai déjà essayé driverquery mais il n'y a aucune information sur la version des pilotes, seulement un lien de liaison. (Au fait, que signifie cette date de lien?)

Je ne veux pas d'outils ou de programmes. J'ai besoin d'une commande cmd ligne.

Ou puis-je obtenir la version du registre?

8
user2145494

Existe-t-il une possibilité d'obtenir la version pilote installée via la ligne de commande

Vous pouvez utiliser le script PowerShell suivant:

Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion

Exemple de sortie:

PS F:\test> Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion

devicename                                                                                          driverversion
----------                                                                                          -------------
Generic volume                                                                                      6.1.7601.17514
Generic volume                                                                                      6.1.7601.17514
Generic volume shadow copy                                                                          6.1.7600.16385
Generic volume shadow copy                                                                          6.1.7600.16385
Generic volume shadow copy                                                                          6.1.7600.16385
Generic volume shadow copy                                                                          6.1.7600.16385
Generic volume shadow copy                                                                          6.1.7600.16385
Generic volume shadow copy                                                                          6.1.7600.16385
Generic volume shadow copy                                                                          6.1.7600.16385
Generic volume                                                                                      6.1.7601.17514
Generic volume                                                                                      6.1.7601.17514
Generic volume                                                                                      6.1.7601.17514
Volume Manager                                                                                      6.1.7601.17514
Microsoft Virtual Drive Enumerator Driver                                                           6.1.7601.17514
Cruzer                                                                                              6.1.7600.16385
UMBus Enumerator                                                                                    6.1.7601.17514
UMBus Enumerator                                                                                    6.1.7601.17514
UMBus Root Bus Enumerator                                                                           6.1.7601.17514
Atheros Bluetooth Bus                                                                               6.30.1208.302
Plug and Play Software Device Enumerator                                                            6.1.7601.17514
Terminal Server Mouse Driver                                                                        6.1.7601.17514
Terminal Server Keyboard Driver                                                                     6.1.7601.17514
WAN Miniport (SSTP)                                                                                 6.1.7601.17514
WAN Miniport (PPTP)                                                                                 6.1.7601.17514
WAN Miniport (PPPOE)                                                                                6.1.7601.17514

...

9
DavidPostill

Vous pouvez utiliser VBScript ou JScript pour obtenir ce que vous voulez. Puisque vous n'avez pas dit pour quel pilote vous vouliez le numéro de version, voici un script hybride BATCH/JScript qui les dépose tous à la console pour vous. Économisez ceci comme driverversion.bat:

@if (@a==@b) @end /*
:: batch portion

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%I in ('driverquery /v /nh /fo csv') do (
    set idx=0
    for %%x in (%%I) do (
        set /a "idx+=1"
        if !idx!==1 (
            set /p "=%%~x version "<NUL
        ) else if !idx!==14 (
            if exist "%%~x" (
                cscript /nologo /e:jscript "%~f0" "%%~x"
            ) else echo N/A
        )
    )
)

goto :EOF

:: JScript portion */
WSH.Echo(new ActiveXObject("Scripting.FileSystemObject").GetFileVersion(WSH.Arguments(0)));
3
rojo

Ici, une version améliorée pour répertorier tous les pilotes incluent la version utilisant SigCheck de Sysinternals Tools:

@echo off

for /f "tokens=* delims=" %%a in ('driverquery /v /nh /fo csv') do (
    SET str=%%a
    SETLOCAL enabledelayedexpansion
    SET str=!str:","=";"!
    for /f "tokens=1,2,14 delims=;" %%d in (!str!) do (
        ENDLOCAL
        for /f "tokens=* delims=" %%v in ('sigcheck -accepteula -q -n "%%f"') do (
            REM echo %%a,^"'%%v^"
            echo ^"%%d,%%e,%%f,^"'%%v^"
            REM echo ^"%%d,^"'%%v^"
        )
    )
)
pause

Une version étendue qui écrit les informations directement à un fichier CSV:

@echo off
set DRIVER_LOG="Drivers_%computername%.csv"

echo Drivers - %computername% - %date% > %DRIVER_LOG%

for /f "tokens=* delims=" %%a in ('driverquery /v /nh /fo csv') do (
    SET str=%%a
    SETLOCAL enabledelayedexpansion
    SET str=!str:","=";"!
    for /f "tokens=1,2,14 delims=;" %%d in (!str!) do (
        ENDLOCAL
        for /f "tokens=* delims=" %%v in ('sigcheck -accepteula -q -n "%%f"') do (
            REM echo %%a,^"'%%v^" >> %DRIVER_LOG%
            echo ^"%%d,%%e,%%f,^"'%%v^" >> %DRIVER_LOG%
            REM echo ^"%%d,^"'%%v^" >> %DRIVER_LOG%
        )
    )
)
pause

Certaines variantes sont possibles ...

[.____] ... pour tous les détails, veuillez utiliser:

echo %%a,^"'%%v^"

... Pour plus de détails, veuillez utiliser (par défaut):

echo ^"%%d,%%e,%%f,^"'%%v^"

... Pour des informations courtes, veuillez utiliser:

echo ^"%%d,^"'%%v^"

Annotation: Si vous ouvrez le fichier CSV créé dans Excel et souhaitez masquer le texte du texte "
[.____] trouver: "'" et remplacer par: "'" dans Excel (oui, c'est vraiment la même chose!)

Ce script a été testé avec Windows XP et Windows 7!
[.____] (Pour Windows XP Utilisez une version plus ancienne de SigCheck! E.G. SigCheck v2.02)

1
user578243

Le meilleur moyen est d'utiliser la commande suivante:

driverquery /v /fo csv > D:\driverlist.csv

Il mettra tous les détails de pilote dans le fichier CSV qui est facile à voir.

0
Sunil Karwasra