Obtenez le modèle de carte vidéo via la ligne de commande dans Windows

13

J'ai besoin d'obtenir une sortie texte avec le modèle de carte vidéo / GPU, en utilisant n'importe quel outil existant dans toutes les versions de Windows à partir de XP (peu probable, je n'ai encore rien trouvé) ou en utilisant un petit outil tiers en ligne de commande.

Des idées?

user2723297
la source
1
dxdiag a des options de ligne de commande pour sortir en fichier txt ou xml, il ne s'imprimera tout simplement pas à l'écran. Vous pouvez obtenir les outils gnuwin32, puis récupérer le fichier après l'avoir créé avec dxdiag (et même grep pour les lignes qui vous intéressent).
MaQleod

Réponses:

23
wmic path win32_VideoController get name 

fait le travail de manière concise à partir de la ligne de commande. Merci à la réponse de Vlastimil Ovčáčík ci-dessus mais je ne sais pas pourquoi elle est si verbeuse.

oche
la source
1
L'autre réponse supprime la ligne "Nom" de la sortie.
DavidPostill
Oui, merci @DavidPostill. Pourtant, c'est une approche assez compliquée.
Oche
Pas si compliqué quand on apprend comment ça formarche. Il est très puissant et idéal pour analyser des lignes de texte;)
DavidPostill
wmic path win32_VideoController get driverVersionmontrera la version du pilote
nwgat
7

Exécuter à partir du lot:

@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
la source
Salut! Cela ressemble exactement à ce que je recherche, mais je ne peux pas le faire fonctionner sur mon PC, je ne suis pas un expert en lot, pourriez-vous m'aider? J'obtiens cette réponse: C: \ Users \ user \ Desktop> gpu n) était inattendu à ce moment. C: \ Users \ user \ Desktop> pour / F "tokens = * skip = 1" n) C: \ Users \ user \ Desktop>
user2723297
@ user2723297, il n'a pas été écrit pour le batch, mais pour être directement collé en ligne de commande. Permettez-moi de modifier la réponse pour éviter tout malentendu.
Vlastimil Ovčáčík
Merci, vous obtenez toujours ce message lors de l'exécution directement à partir de l'invite de commande "%% n était inattendu pour le moment"
user2723297
@ user2723297, comme l'indique la réponse, il est censé être exécuté à partir d'un fichier de commandes. Aussi stackoverflow.com/questions/14509652/…
Vlastimil Ovčáčík
3
  • Copiez ceci et enregistrez-le sur votre bureau en tant que videoCardScript.ps1
  • Cliquez sur Démarrer, tapez powershell, puis appuyez sur Entrée
  • tapez cd ~\Desktoppuis appuyez sur entrée
  • tapez videoCardScript.ps1puis appuyez sur entrée
  • remarque: si vous recevez une erreur mentionnant ... ne peut pas être chargé car l'exécution des scripts est désactivée sur ce système. vous devrez peut - être modifier votre politique d'exécution avec la commande suivante dans Powershell: Set-ExecutionPolicy unrestricted.
  • **** Assurez-vous d'exécuter la commande suivante une fois terminée pour maintenir la sécurité de votre système: ** 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 vous souhaitez obtenir plus d'informations, vous pouvez commenter la del dxoutput.xmlcommande en ajoutant un #devant. Vous pouvez ensuite consulter le contenu du fichier xml qui est enregistré sur votre bureau et pouvez l'ajuster en conséquence. Si vous souhaitez supprimer des informations dans le script, vous pouvez toujours commenter ces lignes spécifiques ou les supprimer entièrement.

PS- vous pouvez voir plusieurs des mêmes cartes. Il y a une raison pour laquelle j'ai le type de sortie inclus ici: une carte affichera des multiples en fonction du nombre de sorties qu'elle peut prendre en charge. Dans mon cas, le mien montre DVI (explicite) et HD15 (qui est VGA).

PSS- J'ai exécuté cela sur une machine Windows 8. Il est possible que vous deviez installer PowerShell sur les machines XP. Ils devront avoir installé le Service Pack 3, puis vous pouvez installer Powershell à partir d'ici: http://support.microsoft.com/kb/968929 (Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 et BITS 4.0))

Bradley Forney
la source
1

copiez ce code dans un .VBSfichier et exécutez-le avec 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

Voici la sortie de mon ordinateur portable Dell:

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

Exécuter à l'invite de commandes:

wmic path win32_VideoController get /all /format:htable >> c:\VGA.html
S.Alizadeh
la source
3
Veuillez expliquer ce que fait la commande
Ramhound
Pouvez-vous expliquer ce que fait ce code et comment il résout le problème posé par l'OP? Un code inexpliqué peut sembler non fiable et dangereux pour les utilisateurs.
bwDraco
Il obtient des informations sur la carte vidéo et l'enregistre au format html dans C Drive nommé vga.html
S.Alizadeh
Cette commande fonctionne, bien que vous n'ayez pas besoin (ou que vous ne pouvez pas en raison de perms) définir à c:\VGA.htmlpartir d'un utilisateur non administrateur. Au lieu de cela, changez simplement le chemin vers VGA.htmlpour vider dans le répertoire utilisateur. Je suis d'accord, bien que son objectif doive être expliqué dans la question plutôt que ici en commentaire.
dhaupin