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

13

Мне нужно получить текстовый вывод с моделью видеокарты / графического процессора, используя любой инструмент, существующий во всех версиях Windows, начиная с XP (маловероятно, я еще ничего не нашел), или используя какой-либо небольшой инструмент командной строки стороннего производителя.

Есть идеи?

user2723297
источник
1
У dxdiag есть параметры командной строки для вывода в текстовый или xml-файл, он просто не будет выводиться на экран. Вы можете получить инструменты gnuwin32 и затем отследить файл после того, как создадите его с помощью dxdiag (и даже grep для строк, которые вас интересуют).
MaQleod

Ответы:

23
wmic path win32_VideoController get name 

делает работу кратко из командной строки. Благодаря ответу Vlastimil Ovčáčík выше, но не уверен, почему это так многословно.

очеь
источник
1
Другой ответ удаляет строку «Имя» из вывода.
ДэвидПостилл
Действительно, спасибо, @DavidPostill. Тем не менее, это довольно сложный подход.
Оч
Не так сложно, когда узнаешь, как forработает. Он очень мощный и отлично подходит для разбора строк текста;)
DavidPostill
wmic path win32_VideoController get driverVersionпокажет версию драйвера
nwgat
7

Запустить из партии:

@echo off
for /F "tokens=* skip=1" %%n in ('WMIC path Win32_VideoController get Name ^| findstr "."') do set GPU_NAME=%%n
echo %GPU_NAME%
Властимил Овчачик
источник
Здравствуй! Это выглядит точно так, как я ищу, но я не могу заставить его работать на моем ПК, я не специалист в пакетном режиме, не могли бы вы помочь? Я получаю этот ответ: C: \ Users \ user \ Desktop> gpu n) был неожиданным в это время. C: \ Users \ user \ Desktop> для / F "tokens = * skip = 1" n) C: \ Users \ user \ Desktop>
user2723297
@ user2723297, он был написан не для пакета, а для прямой вставки в командную строку. Позвольте мне отредактировать ответ, чтобы избежать недоразумений.
Властимил Овчачик
Спасибо, все еще получаю это сообщение при запуске прямо из командной строки "%% n было неожиданным в это время".
user2723297
@ user2723297, как говорится в ответе, предполагается, что он запускается из пакетного файла. Также stackoverflow.com/questions/14509652/…
Vlastimil Ovčáčík
3
  • Скопируйте это и сохраните на рабочий стол как videoCardScript.ps1
  • Нажмите Пуск, затем введите, powershellа затем нажмите Enter
  • введите и cd ~\Desktopнажмите ввод
  • введите и videoCardScript.ps1нажмите ввод
  • примечание: если вы получаете сообщение об ошибке ... не может быть загружено, потому что в этой системе отключены скрипты. Вы , возможно , потребуется изменить политику выполнения с помощью следующей команды в PowerShell: Set-ExecutionPolicy unrestricted.
  • **** Убедитесь, что вы выполнили следующую команду, чтобы обеспечить безопасность вашей системы: ** Set-ExecutionPolicy restricted

    dxdiag /x dxoutput.xml | Out-Null  #Out-Null here ensures the process here has been created before proceeding
    [xml]$xmldata = get-content "dxoutput.xml"
    $xmldata.DxDiag.DisplayDevices.DisplayDevice| % {
        $name=$_.CardName
        $manu=$_.Manufacturer
        $chip=$_.ChipType
        $type=$_.OutputType
        $version=$_.DriverVersion
        write-host "Name: `t`t`t $name"
        write-host "Manufacturer: `t`t $manu"
        write-host "Chip Type: `t`t $chip"
        write-host "Output Type: `t`t $type"
        write-host "Driver Version: `t $version"
        }
    del dxoutput.xml
    

Если вы заинтересованы в получении дополнительной информации, вы можете закомментировать del dxoutput.xmlкоманду, добавив #перед ней. Затем вы можете просмотреть содержимое XML-файла, сохраненного на вашем рабочем столе, и настроить его соответствующим образом. Если вы хотите удалить некоторую информацию из скрипта, вы всегда можете закомментировать эти конкретные строки или удалить их полностью.

PS - вы можете увидеть несколько одинаковых карт. Есть причина, по которой у меня есть тип вывода: карта будет отображать кратные значения в зависимости от того, сколько выходов она может поддерживать. В моем случае мой показывает DVI (само за себя) и HD15 (который является VGA).

PSS - я запускал это на машине с Windows 8. Возможно, вам понадобится установить powershell на компьютеры с XP. Им нужно будет установить Service Pack 3, а затем вы можете установить Powershell отсюда: http://support.microsoft.com/kb/968929 (Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 и BITS 4.0))

Брэдли Форни
источник
1

скопируйте этот код в .VBSфайл и запустите его cscript.exe:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_VideoController",,48) 
For Each objItem in colItems 
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Win32_VideoController instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Caption: " & objItem.Caption
Next

Вот вывод моего ноутбука Dell:

-----------------------------------
Win32_VideoController instance
-----------------------------------
Caption: Intel(R) HD Graphics 4000
-----------------------------------
Win32_VideoController instance
-----------------------------------
Caption: AMD Radeon HD 7700M Series
magicandre1981
источник
0

Запустите в командной строке:

wmic path win32_VideoController get /all /format:htable >> c:\VGA.html
S.Alizadeh
источник
3
Пожалуйста, объясните, что делает команда
Ramhound
Можете ли вы объяснить, что делает этот код и как он решает проблему, заданную ОП? Необъяснимый код может показаться ненадежным и опасным для пользователей.
bwDraco
Он получает информацию о видеокарте и сохраняет ее в формате html на диске C с именем vga.html
S.Alizadeh
Эта команда работает, хотя вам не нужно (или не может из-за разрешений) установить c:\VGA.htmlот пользователя без прав администратора. Вместо этого просто измените путь VGA.htmlк дампу в пользовательский каталог. Я согласен, хотя его цель должна быть объяснена в вопросе, а не здесь, в комментарии.
дхаупин