web-dev-qa-db-ja.com

コマンドラインWindowsからドライバーバージョンを取得する

Windows 7システムでコマンドラインを使用して、インストールされているドライバーのバージョンを取得する可能性はありますか?.

私はすでにdriverqueryを試しましたが、ドライバのバージョンに関する情報はなく、Linkdateのみです。 (ちなみに、そのリンク日はどういう意味ですか?)

ツールやプログラムは必要ありません。 cmd行コマンドが必要です。

または、レジストリからバージョンを取得できますか?

8
user2145494

コマンドラインからインストールされているドライバーのバージョンを取得する可能性はありますか

次の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

...

9
DavidPostill

VBScriptまたはJScriptを使用して、必要なものを取得できます。バージョン番号が必要なドライバーを指定しなかったため、すべてをコンソールにダンプするバッチ/ 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

driverquery /vを使用して、ドライバーファイルをリストに含めることができますが、AFAICSでは、追加のソフトウェアなしでファイルからバージョン番号を取得することはできません。使用できる1つのツールは、SysIntern ^ WMicrosoftの sigcheck です。

@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

ここでは、すべてのドライバーを一覧表示するための改良バージョンに、Sysinternalsツールの Sigcheck を使用したバージョンが含まれています。

@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

最善の方法は、次のコマンドを使用することです。

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

ドライバーの詳細はすべて、見やすいcsvファイルに保存されます。

0
Sunil Karwasra