obter versão do driver via linha de comando do Windows

4

Existe a possibilidade de obter o driver instalado VERSION via linha de comando em um sistema Windows 7.

Já experimentei driverquery , mas não há informações sobre a versão dos drivers, apenas um Linkdate. (A propósito, o que significa essa Data de Link?)

Eu não quero ferramentas ou programas. Eu preciso de um comando de linha cmd.

Ou posso tirar a versão do registro?

    
por user2145494 18.03.2013 / 17:26

5 respostas

5

Existe a possibilidade de obter a versão do driver instalado via linha de comando

Você pode usar o seguinte script do PowerShell:

Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion

Exemplo de saída:

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

...

    
por 11.01.2016 / 19:09
3

Você pode usar o VBScript ou o JScript para obter o que deseja. Como você não informou em qual driver deseja o número da versão, aqui está um script híbrido em lote / JScript que despeja todos eles no console para você. Salve isso como 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)));
    
por 18.03.2013 / 20:20
2

Você pode usar driverquery /v para incluir os arquivos do driver com a listagem, mas o AFAICS não conseguirá obter o número da versão dos arquivos sem o software adicional. Uma ferramenta que você poderia usar seria sigcheck do 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
  )
)

Você não pode obter a versão fora do registro, porque as informações são armazenadas no próprio arquivo.

A data do link é provavelmente a data em que o arquivo foi link , ou seja, a data de criação.

    
por 18.03.2013 / 19:59
1

Aqui, uma versão aprimorada para listar todos os drivers inclui a versão usando o Sigcheck da 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

Uma versão estendida que grava as informações diretamente em um arquivo 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

Algumas variantes são possíveis ...

... para todos os detalhes, por favor use:

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

... para mais detalhes, por favor use (padrão):

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

... para informações breves, use:

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

Anotação: Se você abrir o arquivo csv criado no Excel e quiser ocultar o sinal de texto 'use
Localize: "'" e Substitua por: "'" no Excel (Sim, é realmente o mesmo!)

Este script foi testado com o Windows XP e o Windows 7!
(Para o Windows XP, use uma versão anterior do Sigcheck! Por exemplo, Sigcheck v2.02)

    
por 02.04.2016 / 17:36
0

A melhor maneira é usar o seguinte comando:

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

Ele colocará todos os detalhes do driver no arquivo csv, o que é fácil de ver.

    
por 04.03.2015 / 06:32