Obtenga el modelo de tarjeta de video a través de la línea de comandos en Windows

13

Necesito obtener una salida de texto con el modelo de tarjeta de video / GPU, usando cualquier herramienta existente en todas las versiones de Windows desde XP en adelante (poco probable, todavía no he encontrado nada) o usando cualquier herramienta de terceros de línea de comando pequeña.

¿Algunas ideas?

usuario2723297
fuente
1
dxdiag tiene opciones de línea de comandos para generar archivos txt o xml, simplemente no se imprime en la pantalla. Puede obtener las herramientas gnuwin32 y luego capturar el archivo después de crearlo con dxdiag (e incluso grep para las líneas que le interesan).
MaQleod

Respuestas:

23
wmic path win32_VideoController get name 

hace el trabajo de manera concisa desde la línea de comando. Gracias a la respuesta anterior de Vlastimil Ovčáčík, pero no estoy seguro de por qué es tan detallado.

oche
fuente
1
La otra respuesta elimina la línea "Nombre" de la salida.
DavidPostill
De hecho lo hace, gracias, @DavidPostill. Aún así, es un enfoque bastante complicado.
oche
No es tan complicado cuando aprendes cómo forfunciona. Es muy poderoso y excelente para analizar líneas de texto;)
DavidPostill
wmic path win32_VideoController get driverVersionmostrará la versión del controlador
nwgat
7

Ejecutar desde lote:

@echo off
for /F "tokens=* skip=1" %%n in ('WMIC path Win32_VideoController get Name ^| findstr "."') do set GPU_NAME=%%n
echo %GPU_NAME%
Vlastimil Ovčáčík
fuente
¡Hola! Eso se ve exactamente como lo que estoy buscando, pero no puedo hacerlo funcionar en mi PC, no soy un experto en lotes, ¿podría ayudarme? Recibo esta respuesta: C: \ Users \ user \ Desktop> gpu n) fue inesperado en este momento. C: \ Users \ user \ Desktop> para / F "tokens = * skip = 1" n) C: \ Users \ user \ Desktop>
user2723297
@ user2723297, no se escribió para el lote, sino para pegarse directamente en la línea de comandos. Permítanme editar la respuesta para evitar malentendidos.
Vlastimil Ovčáčík
Gracias, sigo recibiendo este mensaje cuando se ejecuta directamente desde el símbolo del sistema "%% n fue inesperado en este momento".
user2723297
@ user2723297, como dice la respuesta, se supone que debe ejecutarse desde un archivo por lotes. También stackoverflow.com/questions/14509652/…
Vlastimil Ovčáčík
3
  • Copie esto y guárdelo en su escritorio como videoCardScript.ps1
  • Haga clic en Inicio, luego escriba powershelly luego presione Intro
  • escriba cd ~\Desktopy presione enter
  • escriba videoCardScript.ps1y presione enter
  • nota: si recibe un error que menciona ... no se puede cargar porque la ejecución de scripts está deshabilitada en este sistema. puede que tenga que cambiar su política de ejecución con el siguiente comando en PowerShell: Set-ExecutionPolicy unrestricted.
  • **** Asegúrese de ejecutar el siguiente comando cuando termine para mantener la seguridad de su sistema: ** 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
    

Si está interesado en obtener más información, puede comentar el del dxoutput.xmlcomando agregando un #frente. Luego puede ver el contenido del archivo xml que está guardado en su escritorio y puede ajustarlo en consecuencia. Si desea eliminar alguna información en el script, siempre puede comentar esas líneas específicas o eliminarlas por completo.

PD: puede ver múltiples de las mismas tarjetas. Hay una razón por la que tengo el Tipo de salida incluido aquí: una tarjeta mostrará múltiplos en función de cuántas salidas puede admitir. En mi caso, el mío muestra DVI (autoexplicativo) y HD15 (que es VGA).

PSS: ejecuté esto en una máquina con Windows 8. Existe la posibilidad de que necesite instalar powershell en las máquinas XP. Deberán tener instalado el Service Pack 3 y luego puede instalar Powershell desde aquí: http://support.microsoft.com/kb/968929 (Marco de administración de Windows (Windows PowerShell 2.0, WinRM 2.0 y BITS 4.0))

Bradley Forney
fuente
1

copie este código en un .VBSarchivo y ejecútelo con 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

Aquí está la salida de mi computadora portátil Dell:

-----------------------------------
Win32_VideoController instance
-----------------------------------
Caption: Intel(R) HD Graphics 4000
-----------------------------------
Win32_VideoController instance
-----------------------------------
Caption: AMD Radeon HD 7700M Series
magicandre1981
fuente
0

Ejecutar en el símbolo del sistema:

wmic path win32_VideoController get /all /format:htable >> c:\VGA.html
S.Alizadeh
fuente
3
Por favor explique lo que hace el comando
Ramhound
¿Puede explicar qué hace este código y cómo aborda el problema dado por el OP? El código inexplicable puede parecer no confiable y peligroso para los usuarios.
bwDraco
Obtiene información de la tarjeta de video y la guarda como formato html en C Drive llamado vga.html
S.Alizadeh
Este comando funciona, aunque no es necesario (o no se puede debido a permisos) establecer c:\VGA.htmldesde un usuario no administrador. En su lugar, simplemente cambie la ruta VGA.htmlpara volcar en el directorio de usuario. Estoy de acuerdo, aunque su propósito debe explicarse en la pregunta en lugar de aquí abajo en el comentario.
dhaupin