Obtenha o modelo da placa de vídeo via linha de comando no Windows

13

Preciso obter uma saída de texto com o modelo da placa de vídeo / GPU, usando qualquer ferramenta existente em todas as versões do Windows a partir do XP (improvável, ainda não encontrei nada) ou usando qualquer pequena ferramenta de linha de comando de terceiros.

Alguma ideia?

user2723297
fonte
1
O dxdiag possui opções de linha de comando para saída em arquivo txt ou xml, ele simplesmente não será impresso na tela. Você pode obter as ferramentas do gnuwin32 e depois criar o arquivo depois de criá-lo com o dxdiag (e até grep para as linhas que lhe interessam).
precisa saber é

Respostas:

23
wmic path win32_VideoController get name 

faz o trabalho de forma concisa a partir da linha de comando. Graças à resposta de Vlastimil Ovčáčík acima, mas não sei por que é tão detalhada.

oche
fonte
1
A outra resposta remove a linha "Nome" da saída.
DavidPostill
De fato, obrigado, @DavidPostill. Ainda assim, é uma abordagem bastante complicada.
Oct
Não é tão complicado quando você aprende como forfunciona. É muito poderoso e ótimo para analisar linhas de texto;)
DavidPostill
wmic path win32_VideoController get driverVersionmostrará a versão do driver
nwgat 20/12/16
7

Executar a partir do 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
fonte
Oi! Parece exatamente o que estou procurando, mas não consigo fazê-lo funcionar no meu PC, não sou especialista em lotes, você poderia ajudar? Eu recebo esta resposta: C: \ Users \ user \ Desktop> gpu n) era inesperado no momento. C: \ Users \ user \ Desktop> para tokens / F "= * ignorar = 1" n) C: \ Users \ usuário \ Desktop>
user2723297 2/14/14
@ user2723297, não foi gravado para lote, mas para ser colado diretamente na linha de comando. Deixe-me editar a resposta para evitar mal-entendidos.
Vlastimil Ovčáčík 3/03/14
Obrigado, ainda recebendo esta mensagem ao executar diretamente no prompt de comando "%% n foi inesperado no momento".
precisa saber é o seguinte
@ user2723297, como a resposta indica, ela deve ser executada a partir do arquivo em lotes. Também stackoverflow.com/questions/14509652/…
Vlastimil Ovčáčík
3
  • Copie isso e salve na área de trabalho como videoCardScript.ps1
  • Clique em Iniciar , digite powershelle pressione Enter
  • digite cd ~\Desktope pressione enter
  • digite videoCardScript.ps1e pressione enter
  • nota: se você receber um erro mencionando ... não pode ser carregado porque a execução de scripts está desativada neste sistema. pode ser necessário alterar a sua política de execução com o seguinte comando em PowerShell: Set-ExecutionPolicy unrestricted.
  • **** Certifique-se de executar o seguinte comando ao concluir para manter a segurança do seu 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
    

Se você estiver interessado em obter mais informações, pode comentar o del dxoutput.xmlcomando adicionando um #na frente dele. Você pode ver o conteúdo do arquivo xml salvo na área de trabalho e pode ajustar em conformidade. Se você deseja remover algumas informações do script, sempre pode comentar essas linhas específicas ou removê-las completamente.

PS - você pode ver vários cartões iguais. Há uma razão para eu incluir o Tipo de saída aqui: um cartão mostrará múltiplos com base em quantas saídas ele pode suportar. No meu caso, o meu mostra DVI (auto-explicativo) e HD15 (que é VGA).

PSS - Eu executei isso em uma máquina Windows 8. É possível que você precise instalar o PowerShell nas máquinas XP. Eles precisam ter o Service Pack 3 instalado e você pode instalar o Powershell a partir daqui: http://support.microsoft.com/kb/968929 (Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 e BITS 4.0))

Bradley Forney
fonte
1

copie esse código em um .VBSarquivo e execute-o com 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

Aqui está a saída do meu laptop Dell:

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

Executar no prompt de comando:

wmic path win32_VideoController get /all /format:htable >> c:\VGA.html
S.Alizadeh
fonte
3
Por favor, explique o que o comando faz
Ramhound
Você pode explicar o que esse código faz e como ele resolve o problema dado pelo OP? Código inexplicável pode parecer não confiável e perigoso para os usuários.
bwDraco
Ele obter informações placa de vídeo e salvá-lo como formato html na unidade C chamado vga.html
S.Alizadeh
Este comando funciona, embora você não precise (ou não possa devido a permissões) definido a c:\VGA.htmlpartir de um usuário não administrador. Em vez disso, basta alterar o caminho VGA.htmlpara despejar no diretório do usuário. Eu concordo que seu objetivo deva ser explicado na pergunta, e não aqui em baixo no comentário.
dhaupin