DyadyaGenya
Знающий
- Сообщения
- 300
- Репутация
- 10
Добрый день. Пробую получать сведения о винчестере. Один из кусков инфы получаю вот так:
Естественно в консоль выводиться упорядочено, сперва инфа по одному диску, потом по другому и дальше. Не могу придумать как это сохранить в переменные или массив, чтоб легко можно было достать инфу указав Индекс диска ($Index). Естественно - это не весь список. Весь список характеристик я не знаю, и это одна из причин, почему хочу получить массив.
Пробовал так:
И вот такую вставку пробовал сделать:
Но что-то ничего не получается.
Код:
Local $objService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
Local $objItems = $objService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", 0x30)
If Not IsObj($objItems) Then ConsoleWrite('sss') Return
For $Disk In $objItems
Local $Index = $Disk.Index
;ConsoleWrite(@CR & 'Физический индекс диска ' & $Index &@CR)
ConsoleWrite(@CR & 'Физический номер диска ' & $Disk.Index &@CR)
ConsoleWrite('Название компьютера, (CIM_LogicalDevice): ' & $Disk.SystemName &@CR)
ConsoleWrite('Текущий статус объекта, (CIM_ManagedSystemElement): ' & $Disk.Status &@CR)
ConsoleWrite('Идентификация диска: ' & $Disk.Signature &@CR)
ConsoleWrite('айди ' & $Disk.PNPDeviceID &@CR)
ConsoleWrite('Уникальный идентификатор устройства (CIM_LogicalDevice): ' & $Disk.DeviceID &@CR)
ConsoleWrite('Метка, определяющая объект (устройство), (CIM_ManagedSystemElement): ' & $Disk.Name &@CR)
ConsoleWrite('Наименование изготовителя диска: ' & $Disk.Manufacturer &@CR)
ConsoleWrite('Номер модели производителя: ' & $Disk.Model &@CR)
ConsoleWrite('Описание объекта, (CIM_ManagedSystemElement): ' & $Disk.Description &@CR)
ConsoleWrite('серийник ' & $Disk.SerialNumber &@CR)
ConsoleWrite('Размер диска: ' & $Disk.Size &@CR)
ConsoleWrite('Количество байт в каждом секторе для заданного диска: ' & $Disk.BytesPerSector &@CR)
ConsoleWrite('Максимальный размер блока в байтах, (CIM_MediaAccessDevice): ' & $Disk.MaxBlockSize &@CR)
ConsoleWrite('Минимальный размер блока в байтах, (CIM_MediaAccessDevice): ' & $Disk.MinBlockSize &@CR)
ConsoleWrite('Максимальный размер носителя в килобайтах, (CIM_MediaAccessDevice): ' & $Disk.MaxMediaSize &@CR)
ConsoleWrite('нуждается в очистке(True) или нет: ' & $Disk.NeedsCleaning &@CR)
ConsoleWrite('Тип носителей используемых данным устройством: ' & $Disk.MediaType &@CR)
ConsoleWrite('Тип интерфейса ' & $Disk.InterfaceType &@CR)
ConsoleWrite('Номер SCSI шины: ' & $Disk.SCSIBus &@CR)
ConsoleWrite('SCSI логический номер устройства (LUN): ' & $Disk.SCSILogicalUnit &@CR)
ConsoleWrite('SCSI номер порта: ' & $Disk.SCSIPort &@CR)
ConsoleWrite('SCSI идентификатор: ' & $Disk.SCSITargetId &@CR)
ConsoleWrite('Краткое описание объекта, (CIM_ManagedSystemElement): ' & $Disk.Caption &@CR)
ConsoleWrite('Алгоритм или инструмент, используемый в устройстве для поддержки сжатия, информация о жестком диске: ' & $Disk.CompressionMethod &@CR)
ConsoleWrite('Имя класса-создателя, (CIM_LogicalDevice): ' & $Disk.CreationClassName &@CR)
ConsoleWrite('Количество разделов на текущем диске, которые распознаются операционной системой: ' & $Disk.Partitions &@CR)
ConsoleWrite('Свойство содержит массив, хранящий информацию о специфических элементах питания устройства, (CIM_LogicalDevice): ' & $Disk.PowerManagementCapabilities &@CR)
ConsoleWrite('логическое устройство поддерживает управление питанием, (CIM_LogicalDevice): ' & $Disk.PowerManagementSupported &@CR)
ConsoleWrite('Свойство содержит общее количество цилиндров на диске: ' & $Disk.TotalCylinders &@CR)
ConsoleWrite('Общее количество головок на диске: ' & $Disk.TotalHeads &@CR)
ConsoleWrite('Общее количество секторов на диске: ' & $Disk.TotalSectors &@CR)
ConsoleWrite('Общее количество дорожек на диске: ' & $Disk.TotalTracks &@CR)
ConsoleWrite('Количество дорожек в каждом цилиндре: ' & $Disk.TracksPerCylinder &@CR)
Next
Пробовал так:
Код:
Local $objService[0]
$objService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
Local $objItems[0][0]
$objItems = $objService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", 0x30)
For $i = 1 To $objItems[0][0]
Local $tmp = $objItems[$i][1]
ConsoleWrite($tmp & @CRLF)
_ArrayAdd($objItems, objService[$i][1])
Next
И вот такую вставку пробовал сделать:
Код:
Local $Index = $Disk.Index
For $z = 0 To $Index
$tmp = $Disk[$z][1]
_ArrayAdd($Index, $Disk[$z][1])
Next
_ArrayDisplay($Index)
Но что-то ничего не получается.
Последнее редактирование: