получить версию драйвера через командную строку Windows

есть ли возможность узнать установленную версию драйвера через командную строку в Windows 7.

Я уже пробовал driverquery но нет информации о версии драйверов, только Linkdate. (Кстати, что означает эта дата ссылки?)

мне не нужны инструменты или программы. Мне нужна команда командной строки.

или я могу получить версию из реестра?

26
задан user2145494
23.05.2023 3:11 Количество просмотров материала 3210
Распечатать страницу

5 ответов

есть ли возможность узнать установленную версию драйвера через командную строку

вы можете использовать следующий сценарий PowerShell:

Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion

пример:

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

...

5
отвечен DavidPostill 2023-05-24 10:59

Вы можете использовать VBScript или JScript, чтобы получить то, что вы хотите. Поскольку вы не сказали, для какого драйвера вам нужен номер версии, вот гибридный сценарий batch / JScript, который выводит их все на консоль для вас. Сохраните это как 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 2023-05-24 13:16

можно использовать driverquery /v для включения файлов драйвера в список, но AFAICS вы не сможете получить номер версии из файлов без дополнительного программного обеспечения. Один инструмент, который вы могли бы использовать будет sigcheck из SysIntern^WMicrosoft.

@echo off

for /f "delims=, tokens=14" %%d in ('driverquery /v /nh /fo csv') do (
  for /f %%v in ('sigcheck -accepteula -q -n "%%~d"') do (
    echo %%~d %%~v
  )
)

вы не можете получить версию из реестра, поскольку информация хранится в самом файле.

дата ссылки, вероятно, дата, когда файл был связан, т. е. дата создания.

2
отвечен Ansgar Wiechers 2023-05-24 15:33

здесь улучшенная версия, чтобы перечислить все драйверы включают версию с помощью Sigcheck из 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

Расширенная версия, которая записывает информацию непосредственно в файл 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

возможны варианты...



...для получения более подробной информации, пожалуйста, используйте:

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

...для более подробной информации, пожалуйста, используйте (по умолчанию):

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

...для краткой информации, пожалуйста использование:

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

Аннотация: если вы открываете созданный файл csv в Excel и хотите скрыть текстовый знак " использовать

Найдите: "'"и замените на: "'" в Excel (Да, это действительно то же самое!)

этот сценарий был протестирован с Windows XP и Windows 7!

(Для Windows XP используйте более старую версию Sigcheck! например, Sigcheck v2.02)

1
отвечен user578243 2023-05-24 17:50

лучше всего использовать следующую команду:

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

он поместит все детали драйвера в csv-файл, который легко увидеть.

0
отвечен Sunil Karwasra 2023-05-24 20:07

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх