Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также любые проблемы программирования на различных макроязыках и в скриптовых средах)

Рецепты WMI: сбор сведений об аппаратной конфигурации компьютера

Примеры кода в статье приводятся на языке VBScript для административных сценариев Windows. Приведённые ниже примеры не исчерпывают всех возможностей классов, которые в них упоминаются (используются). Для получения полной информации обращайтесь к MSDN. Как правило, поиск в MSDN названия того или иного класса позволяет быстро получить перечень (описание) всех его свойств и методов.

Оглавление статьи:

Класс Win32_PnPEntity

Класс Win32_PnPEntity представляет все установленные устройства Plug-and-Play. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objPnP In objService.ExecQuery("SELECT * FROM Win32_PnPEntity")
	WScript.Echo objPnP.Name 'наименование устройства
	WScript.Echo objPnP.Description 'описание устройства
	WScript.Echo objPnP.Manufacturer 'производитель
	WScript.Echo objPnP.PNPDeviceID 'идентификатор логического устройства
	WScript.Echo
Next

Класс Win32_SystemEnclosure

Класс Win32_SystemEnclosure представляет свойства, связанные с физическим системным корпусом компьютера. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM Win32_SystemEnclosure")
	WScript.Echo objObject.Caption 'наименование устройства
	WScript.Echo objObject.Description 'описание
	WScript.Echo Join(objObject.ChassisTypes) 'тип корпуса (7 - Tower, 10 - Notebook и т.д.)
Next

Класс Win32_BaseBoard

Класс Win32_BaseBoard предоставляет сведения о материнской плате. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM Win32_BaseBoard")
	WScript.Echo objObject.Caption 'наименование устройства
	WScript.Echo objObject.Description 'описание
	WScript.Echo objObject.Manufacturer 'производитель
	WScript.Echo objObject.Product 'тип, определённый производителем
	WScript.Echo objObject.SerialNumber 'серийный номер производителя
	WScript.Echo objObject.Tag 'идентификатор в системе
	WScript.Echo objObject.Version 'версия
Next

Класс Win32_MotherboardDevice

Класс Win32_MotherboardDevice предоставляет сведения о материнской плате. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objMoth In objService.ExecQuery("SELECT * FROM Win32_MotherboardDevice")
	WScript.Echo objMoth.SystemName 'имя компьютера
	WScript.Echo objMoth.Caption 'наименование устройства
	WScript.Echo objMoth.Description 'описание устройства
	WScript.Echo objMoth.DeviceID 'идентификатор устройства
	WScript.Echo objMoth.PrimaryBusType 'тип первичной шины системной платы
	WScript.Echo objMoth.SecondaryBusType 'тип вторичной шины системной платы
Next

Класс Win32_OnBoardDevice

Класс Win32_OnBoardDevice представляет общие адаптеры, встроенные в системную плату. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM Win32_OnBoardDevice")
	WScript.Echo objObject.Caption 'наименование устройства
	WScript.Echo objObject.Description 'описание
	WScript.Echo objObject.DeviceType 'тип устройства
	'(3 - Video, 4 - SCSI Controller, 5 - Ethernet, 6 - Token Ring, 7 - Sound и т.д.)
	WScript.Echo objObject.PartNumber 'серийный номер производителя
	WScript.Echo objObject.SerialNumber 'серийный номер производителя
Next

Класс Win32_Bus

Класс Win32_Bus представляет физические шины. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM Win32_Bus")
	WScript.Echo objObject.Caption 'наименование устройства
	WScript.Echo objObject.Description 'описание
	WScript.Echo objObject.BusType 'тип шины (1 - ISA, 5 - PCI Bus, 15 - PNP Bus и т.д.)
	WScript.Echo objObject.DeviceID 'идентификатор устройства
	WScript.Echo objObject.SystemName 'имя компьютера
	WScript.Echo
Next

Класс Win32_SystemSlot

Класс Win32_SystemSlot предоставляет информацию о слотах системной платы. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM Win32_SystemSlot")
	WScript.Echo objObject.Caption 'наименование устройства
	WScript.Echo objObject.Description 'описание
	WScript.Echo Join(objObject.ConnectorType) 'массив типов слота, напр., 43 - PCI
	WScript.Echo objObject.CurrentUsage 'используется: 3 - Available, 4 - In use 
	WScript.Echo objObject.Number 'номер слота
	WScript.Echo objObject.SlotDesignation 'идентификатор слота
	WScript.Echo objObject.Tag 'идентификатор слота
	WScript.Echo
Next

Класс Win32_Processor

Каждому процессору в системе соответствует экземпляр класса Win32_Processor в WMI. На многопроцессорной машине таких экземпляров будет несколько. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objProc In objService.ExecQuery("SELECT * FROM Win32_Processor")
	WScript.Echo objProc.Caption 'краткое описание процессора
	WScript.Echo objProc.Description 'краткое описание процессора
	WScript.Echo Trim(objProc.Name) 'наименование процессора
	'номер версии процессора, зависящий от архитектуры (не исп. в Windows 95):
	WScript.Echo objProc.Version
	WScript.Echo objProc.Manufacturer 'производитель
	WScript.Echo objProc.DeviceID 'уникальный идентификатор процессора в системе
	'статус:
	'0 - Unknown
	'1 - CPU Enabled
	'2 - CPU Disabled by User via BIOS Setup
	'3 - CPU Disabled By BIOS (POST Error)
	'4 - CPU is Idle
	'5 - Reserved
	'6 - Reserved
	'7 - Other
	WScript.Echo objProc.CpuStatus 'статус
	WScript.Echo objProc.LoadPercentage 'загрузка процессора в прошлую секунду (в проц.)
	WScript.Echo objProc.CurrentClockSpeed 'текущая скорость процессора - в MHz
	WScript.Echo objProc.MaxClockSpeed 'максимальная скорость процессора - в MHz
	WScript.Echo objProc.ExtClock 'частота внешн. таймера (external clock frequency) в MHz
	WScript.Echo objProc.L2CacheSize 'размер кэша процессора Level 2
	WScript.Echo objProc.L2CacheSpeed 'скорость кэша процессора Level 2 - в MHz
	'тип процессора:
	'1 - Other
	'2 - Unknown
	'3 - Central Processor
	'4 - Math Processor
	'5 - DSP Processor
	'6 - Video Processor
	WScript.Echo objProc.ProcessorType 'тип процессора
	WScript.Echo objProc.SocketDesignation 'тип chip socket'а
	WScript.Echo objProc.SystemName 'имя компьютера
Next

Класс Win32_CacheMemory

Класс Win32_CacheMemory представляет внутреннюю и внешнюю кэш-память в компьютерной системе. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM Win32_CacheMemory")
	WScript.Echo objObject.SystemName 'имя компьютера
	WScript.Echo objObject.Caption 'наименование устройства
	WScript.Echo objObject.Description 'описание
	WScript.Echo objObject.DeviceID 'идентификатор устройства
	WScript.Echo objObject.BlockSize 'размер блоков в байтах; 1 - неизвестно
	WScript.Echo objObject.CacheType 'тип кэша (напр., 3 - Instruction, 4 - Data)
	'массив типов статической оперативной памяти (SRAM) используемых для кэш-памяти,
	'напр., 2 - Non-Burst, 3 - Burst, 4 - Pipeline Burst, 5 - Synchronous, 6 - Asynchronous
	WScript.Echo Join(objObject.CurrentSRAM)
	WScript.Echo objObject.Level 'уровень кэша (напр., 3 - Primary, 4 - Secondary, 5 - Tertiary)
	'физическое местоположение кэш-памяти, 0 - Internal, 1 - External: 
	WScript.Echo objObject.Location
	WScript.Echo objObject.MaxCacheSize 'максимальный размер кэша
	WScript.Echo objObject.Purpose 'назначение
	WScript.Echo
Next

Класс Win32_PhysicalMemory

Экземпляр класса Win32_PhysicalMemory представляет физическое устройство памяти, расположенное на компьютере и доступное операционной системе. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objPhMem In objService.ExecQuery("SELECT * FROM Win32_PhysicalMemory")
	WScript.Echo objPhMem.Name 'наименование устройства
	WScript.Echo objPhMem.Capacity 'размер физической памяти в байтах
	WScript.Echo objPhMem.DeviceLocator 'гнездо или монтажная схема, к которой подключена память
Next

Класс Win32_MemoryDevice

Класс Win32_MemoryDevice предоставляет информацию о начальных и конечных адресах для всех устройств памяти, установленных на компьютере. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM Win32_MemoryDevice")
	WScript.Echo objObject.SystemName 'имя компьютера
	WScript.Echo objObject.Caption 'наименование устройства
	WScript.Echo objObject.Description 'описание
	WScript.Echo objObject.DeviceID 'идентификатор устройства
	WScript.Echo objObject.StartingAddress 'начальный адрес
	WScript.Echo objObject.EndingAddress 'конечный адрес
	WScript.Echo
Next

Класс Win32_MemoryArray

Класс Win32_MemoryArray предоставляет информацию о начальных и конечных адресах для всех массивов памяти, установленных на компьютере. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM Win32_MemoryArray")
	WScript.Echo objObject.SystemName 'имя компьютера
	WScript.Echo objObject.Caption 'наименование устройства
	WScript.Echo objObject.Description 'описание
	WScript.Echo objObject.DeviceID 'идентификатор устройства
	WScript.Echo objObject.StartingAddress 'начальный адрес
	WScript.Echo objObject.EndingAddress 'конечный адрес
	WScript.Echo
Next

Класс Win32_PhysicalMemoryArray

Класс Win32_PhysicalMemoryArray предоставляет информацию о массиве физической памяти компьютера. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM Win32_PhysicalMemoryArray")
	WScript.Echo objObject.Caption 'наименование устройства
	WScript.Echo objObject.Description 'описание
	WScript.Echo objObject.MaxCapacity 'максимальный размер памяти в байтах
	WScript.Echo objObject.MemoryDevices 'количество физических слотов или гнезд, доступных в этом массиве памяти
	WScript.Echo objObject.Tag 'идентификатор массива памяти
	WScript.Echo
Next

Класс Win32_DeviceMemoryAddress

Класс Win32_DeviceMemoryAddress предоставляет информацию о начальных и конечных адресах памяти для всех устройств, установленных на компьютере. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM Win32_DeviceMemoryAddress")
	WScript.Echo objObject.CSName 'имя компьютера
	WScript.Echo objObject.Caption 'краткое описание
	WScript.Echo objObject.Description 'описание
	WScript.Echo objObject.StartingAddress 'начальный адрес
	WScript.Echo objObject.EndingAddress 'конечный адрес
	WScript.Echo
Next

Класс Win32_DMAChannel

Класс Win32_DMAChannel предоставляет информацию о каналах DMA (прямого доступа к памяти) на компьютере. Прямой доступ к памяти является методом переместить данные от устройства в память (или наоборот) без помощи микропроцессора. Системная плата использует контроллер DMA, чтобы получить установленное количество каналов, каждый из которых может использоваться только одним устройством одновременно. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM Win32_DMAChannel")
	WScript.Echo objObject.CSName 'имя компьютера
	WScript.Echo objObject.Caption 'наименование устройства
	WScript.Echo objObject.Description 'описание
	WScript.Echo objObject.DMAChannel 'номер канала DMA
	WScript.Echo
Next

Класс Win32_PortConnector

Класс Win32_PortConnector предоставляет информацию о физических портах подключения, таких, как Centronics, PS/2 и т.д. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM Win32_PortConnector")
	WScript.Echo objObject.Caption 'наименование устройства
	WScript.Echo objObject.Description 'описание
	'массив атрибутов порта; некоторые возможные значения:
	'16 - ATA 3-1/2 Inch (40 pins)
	'53 - USB
	'61 - PS/2
	'64 - Access.bus
	'88 - SSA SCSI
	WScript.Echo Join(objObject.ConnectorType)
	WScript.Echo objObject.ExternalReferenceDesignator 'идентификатор, определяющий тип и использование порта
	'тип порта; некоторые возможные значения:
	'5 - Parallel Port ECP/EPP
	'8 - Serial Port 16550 Compatible
	'11 - MIDI Port
	'12 - Joystick Port
	'13 - Keyboard Port
	'14 - Mouse Port
	'16 - USB
	'28 - Video Port
	'29 - Audio Port
	WScript.Echo objObject.PortType
	WScript.Echo objObject.Tag 'идентификатор порта
	WScript.Echo
Next

Класс Win32_PortResource

Класс Win32_PortResource предоставляет информацию обо всех портах ввода - вывода (I/O ports), найденных на компьютере. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM Win32_PortResource")
	WScript.Echo objObject.Caption 'наименование устройства
	WScript.Echo objObject.Description 'описание
	WScript.Echo objObject.CSName 'имя компьютера
	WScript.Echo objObject.StartingAddress 'начальный адрес
	WScript.Echo objObject.EndingAddress 'конечный адрес
	WScript.Echo
Next

Класс Win32_ParallelPort

Класс Win32_ParallelPort содержит сведения о параллельных портах. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objPort In objService.ExecQuery("SELECT * FROM Win32_ParallelPort")
	WScript.Echo objPort.Caption 'наименование устройства
	WScript.Echo objPort.Description 'описание устройства
	WScript.Echo objPort.DeviceID 'идентификатор устройства
	WScript.Echo objPort.PNPDeviceID 'идентификатор устройства Plug-and-Play
	WScript.Echo objPort.SystemName 'имя компьютера
Next

Классы Win32_SerialPort и Win32_SerialPortConfiguration

Классы Win32_SerialPort и Win32_SerialPortConfiguration содержат сведения о последовательных портах. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objPort In objService.ExecQuery("SELECT * FROM Win32_SerialPort")
	WScript.Echo objPort.Caption 'наименование устройства
	WScript.Echo objPort.Description 'описание устройства
	WScript.Echo objPort.DeviceID 'идентификатор устройства
	WScript.Echo objPort.PNPDeviceID 'идентификатор устройства Plug-and-Play
	WScript.Echo objPort.SystemName 'имя компьютера
	WScript.Echo
Next

Класс Win32_Keyboard

Класс Win32_Keyboard содержит сведения о клавиатуре. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objKeyb In objService.ExecQuery("SELECT * FROM Win32_Keyboard")
	Exit For
Next
WScript.Echo objKeyb.Caption 'наименование устройства
WScript.Echo objKeyb.Description 'описание устройства
WScript.Echo objKeyb.DeviceID 'адрес или другая уникальная информация идентификации
WScript.Echo objKeyb.NumberOfFunctionKeys 'количество функциональных клавиш
WScript.Echo objKeyb.SystemName 'имя компьютера

Класс Win32_PointingDevice

Класс Win32_PointingDevice содержит сведения о мыши. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objMouse In objService.ExecQuery("SELECT * FROM Win32_PointingDevice")
	Exit For
Next
WScript.Echo objMouse.Caption 'наименование устройства
WScript.Echo objMouse.Description 'описание устройства
WScript.Echo objMouse.HardwareType 'тип устройства
WScript.Echo objMouse.Manufacturer 'производитель
WScript.Echo objMouse.DeviceID 'уникальный идентификатор устройства
WScript.Echo objMouse.DeviceInterface 'интерфейс: 162 - USB, 4 - PS/2, 3 - Serial и т.д.
WScript.Echo objMouse.Handedness 'настройка: 2 - мышь для правши, 3 - мышь для левши
WScript.Echo objMouse.NumberOfButtons 'количество кнопок
WScript.Echo objMouse.SystemName 'имя компьютера

Класс Win32_SoundDevice

Класс Win32_SoundDevice содержит сведения о звуковой карте. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objSound In objService.ExecQuery("SELECT * FROM Win32_SoundDevice")
	WScript.Echo objSound.Caption 'наименование устройства
	WScript.Echo objSound.ProductName 'наименование устройства
	WScript.Echo objSound.Description 'описание устройства
	WScript.Echo objSound.Manufacturer 'производитель
	WScript.Echo objSound.DeviceID 'идентификатор устройства
	WScript.Echo objSound.SystemName 'имя компьютера
Next

Класс Win32_VideoController

Класс Win32_VideoController содержит сведения о видеокарте. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objVideo In objService.ExecQuery("SELECT * FROM Win32_VideoController")
	WScript.Echo objVideo.SystemName 'имя компьютера
	WScript.Echo objVideo.Caption 'наименование устройства
	WScript.Echo objVideo.Description 'описание устройства
	WScript.Echo objVideo.DeviceID 'идентификатор устройства
	WScript.Echo objVideo.AdapterRAM 'размер памяти видеоадаптера
	WScript.Echo objVideo.CurrentHorizontalResolution 'текущее разрешение экрана по горизонтали (точек)
	WScript.Echo objVideo.CurrentVerticalResolution 'текущее разрешение экрана по вертикали (точек)
	WScript.Echo objVideo.CurrentNumberOfColors 'число цветов в текущем разрешении экрана
	WScript.Echo objVideo.VideoModeDescription 'текущее разрешение экрана и число цветов
	WScript.Echo objVideo.CurrentBitsPerPixel 'качество цветопередачи (количество бит на пиксель)
	WScript.Echo objVideo.CurrentRefreshRate 'частота обновления экрана, Гц
	'(0 - по умолчанию, 0xFFFFFFFF - оптимальная)
	WScript.Echo objVideo.DriverDate 'дата-время последней модификации текущего видеодрайвера
	WScript.Echo objVideo.DriverVersion 'версия текущего видеодрайвера
	WScript.Echo objVideo.PNPDeviceID 'идентификатор устройства Plug-and-Play
	WScript.Echo objVideo.VideoProcessor 'описание видеопроцессора
Next

Класс CIM_VideoControllerResolution

Класс CIM_VideoControllerResolution представляет различные видео режимы, которые поддерживает видео контроллер. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objObject In objService.ExecQuery("SELECT * FROM CIM_VideoControllerResolution")
	WScript.Echo objObject.Description 'описание
	WScript.Echo objObject.SettingID 'идентификатор набора параметров
	WScript.Echo objObject.HorizontalResolution 'горизонтальное разрешение, пикселы
	WScript.Echo objObject.VerticalResolution 'вертикальное разрешение, пикселы
	WScript.Echo objObject.NumberOfColors 'количество цветов
	WScript.Echo objObject.RefreshRate 'частота регенерации, Hz
	WScript.Echo
Next

Классы Win32_NetworkAdapter и Win32_NetworkAdapterConfiguration

Классы Win32_NetworkAdapter и Win32_NetworkAdapterConfiguration содержат сведения о сетевых адаптерах. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objNtw In objService.ExecQuery("SELECT * FROM Win32_NetworkAdapter")
	WScript.Echo objNtw.SystemName 'имя компьютера
	WScript.Echo objNtw.Caption 'наименование устройства
	WScript.Echo objNtw.Name 'наименование устройства
	WScript.Echo objNtw.ServiceName 'краткое наименование устройства
	WScript.Echo objNtw.Description 'описание устройства
	WScript.Echo objNtw.Manufacturer 'производитель
	WScript.Echo objNtw.AdapterType 'тип устройства
	WScript.Echo objNtw.DeviceID 'идентификатор устройства
	WScript.Echo objNtw.PNPDeviceID 'идентификатор устройства Plug-and-Play
	WScript.Echo objNtw.Index 'индекс сетевого адаптера в системном реестре
	WScript.Echo objNtw.MACAddress 'MAC - адрес
	WScript.Echo
Next

Класс Win32_NetworkAdapterConfiguration предоставляет ряд свойств сетевого адаптера, а также включает дополнительные методы, которые поддерживают управление протоколами TCP/IP и IPX, службами DNS, DHCP, WINS и т.д. Перечень свойств и методов этого класса достаточно обширен; для получения информации обращайтесь к MSDN.

Класс Win32_DesktopMonitor

Класс Win32_DesktopMonitor предоставляет сведения о мониторе, подключённом к компьютерной системе. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objMon In objService.ExecQuery("SELECT * FROM Win32_DesktopMonitor")
	WScript.Echo objMon.SystemName 'имя компьютера
	WScript.Echo objMon.Caption 'наименование устройства
	WScript.Echo objMon.Description 'описание устройства
	WScript.Echo objMon.DeviceID 'идентификатор устройства
	WScript.Echo objMon.PNPDeviceID 'идентификатор устройства Plug-and-Play
	WScript.Echo objMon.MonitorManufacturer 'производитель
	WScript.Echo objMon.PixelsPerXLogicalInch 'разрешающая способность монитора по горизонтали
	WScript.Echo objMon.PixelsPerYLogicalInch 'разрешающая способность монитора по вертикали
	WScript.Echo objMon.ScreenHeight 'логическая высота дисплея
	WScript.Echo objMon.ScreenWidth 'логическая ширина дисплея
Next

Класс Win32_FloppyDrive

Класс Win32_FloppyDrive предоставляет сведения о дисководах гибких дисков. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objFloppy In objService.ExecQuery("SELECT * FROM Win32_FloppyDrive")
	WScript.Echo objFloppy.SystemName 'имя компьютера
	WScript.Echo objFloppy.Caption 'наименование устройства
	WScript.Echo objFloppy.Description 'описание устройства
	WScript.Echo objFloppy.DeviceID 'идентификатор устройства
	WScript.Echo objFloppy.Manufacturer 'производитель
Next

Класс Win32_DiskDrive

Класс Win32_DiskDrive предоставляет сведения о дисководах. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objDisk In objService.ExecQuery("SELECT * FROM Win32_DiskDrive")
	WScript.Echo objDisk.SystemName 'имя компьютера
	WScript.Echo objDisk.Caption 'наименование устройства
	WScript.Echo objDisk.Model 'модель, указанная производителем
	WScript.Echo objDisk.Description 'описание устройства
	WScript.Echo objDisk.DeviceID 'идентификатор устройства
	WScript.Echo objDisk.PNPDeviceID 'идентификатор устройства Plug-and-Play
	WScript.Echo objDisk.Manufacturer 'производитель
	WScript.Echo objDisk.Index 'номер диска (если 0xFF - не отображает физический диск)
	WScript.Echo objDisk.InterfaceType 'тип интерфейса (IDE, SCSI)
	WScript.Echo objDisk.MediaType 'тип носителя (Removable media, Fixed hard disk и т.д.)
	WScript.Echo objDisk.SCSIBus 'номер шины SCSI
	WScript.Echo objDisk.SCSILogicalUnit 'номер SCSI устройства
	WScript.Echo objDisk.SCSIPort 'номер порта SCSI
	WScript.Echo objDisk.SCSITargetId 'идентификационный номер SCSI
	WScript.Echo objDisk.TotalHeads 'количество головок
	WScript.Echo objDisk.BytesPerSector 'количество байт в секторе
	WScript.Echo objDisk.SectorsPerTrack 'количество секторов на дорожке
	WScript.Echo objDisk.TracksPerCylinder 'количество дорожек в цилиндре
	WScript.Echo objDisk.TotalCylinders 'количество цилиндров
	WScript.Echo objDisk.TotalSectors 'общее количество секторов
	WScript.Echo objDisk.TotalTracks 'общее количество дорожек
	WScript.Echo objDisk.Size 'размер диска (по количеству цилиндров, дорожек, секторов и размеру сектора)
	WScript.Echo objDisk.Partitions 'количество разделов на диске
	WScript.Echo
Next

Класс Win32_CDROMDrive

Класс Win32_CDROMDrive предоставляет сведения об устройствах CD-ROM. Пример получения информации:


On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
	WScript.Echo Err.Number & ": " & Err.Description
	WScript.Quit
End If
For Each objDisk In objService.ExecQuery("SELECT * FROM Win32_CDROMDrive")
	WScript.Echo objDisk.SystemName 'имя компьютера
	WScript.Echo objDisk.Caption 'наименование устройства
	WScript.Echo objDisk.Description 'описание устройства
	WScript.Echo objDisk.DeviceID 'идентификатор устройства
	WScript.Echo objDisk.Manufacturer 'производитель
	WScript.Echo objDisk.Id 'drive letter
	WScript.Echo objDisk.Size 'размер диска
	WScript.Echo objDisk.VolumeName 'метка тома
	WScript.Echo objDisk.VolumeSerialNumber 'серийный номер тома
Next

Людоговский Александр

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.