确定通过WMI运行的GPU

我正在尝试编写一个python脚本来确定哪个GPU(专用或集成的)当前正在运行。 我已经设法通过运行dxdiag并parsing每个gpu设备的模式输出来实现目前的工作,但是这太耗时了。 有谁知道dxdiag如何获取这些信息? 有没有办法通过Windowspipe理工具获取信息? 任何帮助表示赞赏。

谢谢

DXDiag最有可能WMI表中提取数据。 我需要确认它。

 wmic PATH Win32_VideoController GET Adapterram 

将为您提供您正在查找的信息。 如果你想要更多的信息只需运行下面提到的命令。

 wmic PATH Win32_VideoController 

如果你想GPU的名字

 wmic PATH Win32_VideoController GET Name 

更新

添加一个例子,以更好的理解。 您可以使用deviceid在下面提到的表格之间进行deviceid并获取信息。

 instance of Win32_VideoController { AdapterCompatibility = "Intel Corporation"; AdapterDACType = "Internal"; AdapterRAM = 1073741824; Availability = 3; Caption = "Intel(R) HD Graphics 4600"; ConfigManagerErrorCode = 0; ConfigManagerUserConfig = FALSE; CreationClassName = "Win32_VideoController"; CurrentBitsPerPixel = 32; CurrentHorizontalResolution = 1920; CurrentNumberOfColors = "4294967296"; CurrentNumberOfColumns = 0; CurrentNumberOfRows = 0; CurrentRefreshRate = 59; CurrentScanMode = 4; CurrentVerticalResolution = 1080; Description = "Intel(R) HD Graphics 4600"; DeviceID = "VideoController1"; DitherType = 0; DriverDate = "20150911000000.000000-000"; DriverVersion = "20.19.15.4285"; InfFilename = "oem79.inf"; InfSection = "iHSWD_w10"; InstalledDisplayDrivers = "igdumdim64.dll,igd10iumd64.dll,igd10iumd64.dll,igd12umd64.dll,igdumdim32,igd10iumd32,igd10iumd32,igd12umd32"; MaxRefreshRate = 75; MinRefreshRate = 50; Monochrome = FALSE; Name = "Intel(R) HD Graphics 4600"; PNPDeviceID = "PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C&REV_06\\3&11583659&0&10"; Status = "OK"; SystemCreationClassName = "Win32_ComputerSystem"; SystemName = "---------"; VideoArchitecture = 5; VideoMemoryType = 2; VideoModeDescription = "1920 x 1080 x 4294967296 colors"; VideoProcessor = "Intel(R) HD Graphics Family"; }; instance of Win32_PnPEntity { Caption = "Intel(R) HD Graphics 4600"; ClassGuid = "{4d36e968-e325-11ce-bfc1-08002be10318}"; CompatibleID = {"PCI\\VEN_8086&DEV_0412&REV_06", "PCI\\VEN_8086&DEV_0412", "PCI\\VEN_8086&CC_030000", "PCI\\VEN_8086&CC_0300", "PCI\\VEN_8086", "PCI\\CC_030000", "PCI\\CC_0300"}; ConfigManagerErrorCode = 0; ConfigManagerUserConfig = FALSE; CreationClassName = "Win32_PnPEntity"; Description = "Intel(R) HD Graphics 4600"; DeviceID = "PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C&REV_06\\3&11583659&0&10"; HardwareID = {"PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C&REV_06", "PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C", "PCI\\VEN_8086&DEV_0412&CC_030000", "PCI\\VEN_8086&DEV_0412&CC_0300"}; Manufacturer = "Intel Corporation"; Name = "Intel(R) HD Graphics 4600"; PNPClass = "Display"; PNPDeviceID = "PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C&REV_06\\3&11583659&0&10"; Present = TRUE; Service = "igfx"; Status = "OK"; SystemCreationClassName = "Win32_ComputerSystem"; SystemName = "-------"; };