Win32_DiskDrive

WSH + WMI. Примеры. Класс Win32_DiskDrive



Класс Win32_DiskDrive содержит Информация о жестких дисках



class Win32_DiskDrive : CIM_DiskDrive { uint16 Availability; uint32 BytesPerSector; uint16 Capabilities[]; string CapabilityDescriptions[]; string Caption; string CompressionMethod; uint32 ConfigManagerErrorCode; boolean ConfigManagerUserConfig; string CreationClassName; uint64 DefaultBlockSize; string Description; string DeviceID; boolean ErrorCleared; string ErrorDescription; string ErrorMethodology; string FirmwareRevision; uint32 Index; datetime InstallDate; string InterfaceType; uint32 LastErrorCode; string Manufacturer; uint64 MaxBlockSize; uint64 MaxMediaSize; boolean MediaLoaded; string MediaType; uint64 MinBlockSize; string Model; string Name; boolean NeedsCleaning; uint32 NumberOfMediaSupported; uint32 Partitions; string PNPDeviceID; uint16 PowerManagementCapabilities[]; boolean PowerManagementSupported; uint32 SCSIBus; uint16 SCSILogicalUnit; uint16 SCSIPort; uint16 SCSITargetId; uint32 SectorsPerTrack; string SerialNumber; uint32 Signature; uint64 Size; string Status; uint16 StatusInfo; string SystemCreationClassName; string SystemName; uint64 TotalCylinders; uint32 TotalHeads; uint64 TotalSectors; uint64 TotalTracks; uint32 TracksPerCylinder; };


Методы

В документации упоминаются методы Reset и SetPowerState которые, как следует из той же документации не реализованы.

Свойства

Ниже будут описаны ряд свойств класса Win32_DiskDrive.
Availability
Только для чтения. Наличие и состояние устройства.


Значение
 

Описание
 
1 (0x1)Другой
2 (0x2)Неизвестный
3 (0x3)Full Power
4 (0x4)Предупреждение
5 (0x5)Тестируется
7 (0x7)Питание выключено
8 (0x8)Off Line
11 (0xB)Не установлен
12 (0xC)Ошибка установки
13 (0xD)Энергосбережение - неизвестно
14 (0xE)Энергосбережение - низкое энергопотребление
15 (0xF)Энергосбережение - в режиме ожидания
17 (0x11)Энергосбережение - предупреждение
BytesPerSector
Только для чтения. Количество байт в каждом секторе для заданного диска
Capabilities
Только для чтения. Массив возможностей устройства.


Значение
 

Описание
 
0Неизвестный
1Другой
2Последовательный доступ
3Произвольный доступ
4Поддержка записи
5Шифрование
6Сжатие
7Поддержка сменных носителей
8Ручная очистка
9Автоматическая очистка
10SMART уведомление
11Поддержка двухсторонних носителей
CapabilityDescriptions
Только для чтения. Список более подробных объяснений возможностей устройства доступа, указанных в массиве Capabilities
Caption
Только для чтения. Краткое описание объекта.
CompressionMethod
Только для чтения. Алгоритм или инструмент, используемый в устройстве для поддержки сжатия.


Значение
 

Описание
 
UnknownНеизвестно, поддерживает устройство функции сжатия или нет.
CompressedУстройство поддерживает функции сжатия
Not CompressedУстройство не поддерживает сжатие.
ConfigManagerErrorCode
Только для чтения. Код ошибки конфигурации.


Значение
 

Описание
 
0 (0x0)Устройство работает правильно
1 (0x1)Устройство настроено неправильно
2 (0x2)Не удалось загрузить драйвер для этого устройства
3 (0x3)Драйвер для этого устройства поврежден, или недостаточно памяти или других ресурсов
4 (0x4)Устройство не работает должным образом. Драйвер или реестр может быть поврежден.
5 (0x5)Драйвер для устройства требуется ресурс, которым система не может управлять
6 (0x6)Загрузочная конфигурация для устройства конфликтует с другими устройствами
7 (0x7)Cannot filter. Вероятно, не фильтрует базар))
8 (0x8)Отсутствует загруженный драйвер для этого устройства
9 (0x9)Устройство не работает должным образом. Ошибки в прошивке
10 (0xA)Устройство не может стартовать
11 (0xB)Device failed.
12 (0xC)Устройство не может найти достаточно свободных ресурсов для использования.
13 (0xD)Не удалось проверить ресурсы устройства.
14 (0xE)Устройство не может работать должным образом, пока компьютер не будет перезагружен.
15 (0xF)Устройство не работает должным образом
16 (0x10)Не удается выявить все ресурсы, которые использует устройство.
17 (0x11)Устройство запрашивает неизвестный тип ресурса.
18 (0x12)Драйвер устройства необходимо переустановить.
19 (0x13)Отказ загрузчика VxD.
20 (0x14)Реестр может быть поврежден.
21 (0x15)Сбой системы.
22 (0x16)Устройство отключено.
23 (0x17)Сбой системы.
24 (0x18)Устройство отсутствует, не работает должным образом, или не имеет всех драйверов.
25 (0x19)Windows находиться в состоянии настройки устройства.
26 (0x1A)Windows находиться в состоянии настройки устройства.
27 (0x1B)Устройство не имеет допустимой конфигурации журнала.
28 (0x1C)Драйверы устройств не установлены.
29 (0x1D)Устройство отключено.
30 (0x1E)Устройство использует IRQ такое же, как и другое устройство.
31 (0x1F)Устройство не работает должным образом. Не удалось загрузить необходимые драйвера устройств.
ConfigManagerUserConfig
Только для чтения. Если значение True, то устройство использует пользовательскую конфигурацию.
DefaultBlockSize
Только для чтения. По умолчанию размер блока в байтах, для этого устройства.
Description
Только для чтения. Описание объекта.
DeviceID
Только для чтения. Уникальный идентификатор.
ErrorDescription
Только для чтения. Более подробная информацию об ошибке, записанной в LastErrorCode.
ErrorMethodology
Только для чтения. Тип обнаружения и исправления ошибок которые поддерживаются этим устройством.
FirmwareRevision
Только для чтения. Редакция микропрограммы.
Index
Только для чтения. Физический номер драйвера
InstallDate
Только для чтения. Дата и время когда объект был установлен.
InterfaceType
Только для чтения.Тип интерфейса физического диска.
Возможные значения:
SCSI
HDC
IDE
USB
1394
LastErrorCode
Только для чтения. Последний код ошибки логического устройства.
Manufacturer
Только для чтения. Имя производителя устройства.
MaxBlockSize
Только для чтения. Максимальный размер блока в байтах.
MaxMediaSize
Только для чтения. Максимальный размер в килобайтах, который поддерживается этим устройством
MediaLoaded
Только для чтения. Устройство имеет читаемую файловую систему и доступно.
MediaType
Тип носителей, которые можно использовать. Возможные значения:
External hard disk media
Removable media other than floppyCdRomWrite
Fixed hard disk media
Format is unknown
MinBlockSize
Только для чтения. Минимальный размер блока в байтах.
Model
Только для чтения. Номер модели производителя.
Name
Только для чтения. Имя, под которым этот объект известен
NeedsCleaning
Только для чтения. Если значение True, то устройство доступа к среде нуждается в очистке.
Partitions
Только для чтения. Количество разделов на этом физическом диске, которые распознаются операционной системой
PowerManagementCapabilities
Только для чтения. Код ошибки конфигурации.


Значение
 

Описание
 
0 (0x0)Неизвестный
1 (0x1)Не поддерживается
2 (0x2)Отключено
3 (0x3)Включено
4 (0x4)Режимов энергосбережения вводится автоматически.
5 (0x5)Состояние энергосбережения можно настраивать
6 (0x6)Поддержка циклов включения-выключения диска.
7 (0x7)Поддерживается временное включение питания.
PowerManagementSupported
Только для чтения. Если значение True, то устройство поддерживает управление питанием
SCSIBus
Только для чтения. Номер SCSI шины
SCSILogicalUnit
Только для чтения. SCSI номер логического устройства
SCSIPort
Только для чтения. Номер порта SCSI в дисководе
SCSITargetId
Только для чтения. SCSI идентификатор номера диска.
SectorsPerTrack
Только для чтения. Количество секторов в каждой дорожке для этого физического диска.
SerialNumber
Только для чтения. Номер, присвоенный изготовителем для идентификации физического носителя.
Signature
Только для чтения. Идентификация диска. Это свойство может быть использовано для идентификации общего ресурса.
Size
Только для чтения. Размер диска. Он рассчитывается путем умножения общего количества цилиндров, дорожек в каждом цилиндре, секторов на каждой дорожке, и байт в каждом секторе.
SerialNumber
Только для чтения. Номер, присвоенный изготовителем для идентификации физического носителя.
Status
Только для чтения. Текущий статус объекта. Возможные значения
"OK"
"Error"
"Degraded"
"Unknown"
"Pred Fail"
"Starting"
"Stopping"
"Service"
"Stressed"
"NonRecover"
"No Contact"
"Lost Comm"
SerialNumber
Только для чтения. Номер, присвоенный изготовителем для идентификации физического носителя.
StatusInfo
Только для чтения. Состояние логического устройства.


Значение
 

Описание
 
1 (0x1)Другой
2 (0x2)Неизвестный
3 (0x3)Включено
4 (0x4)Не включено.
5 (0x5)Не приминяемо
SystemName
Только для чтения. Имя в системе.
TotalCylinders
Только для чтения. Общее количество цилиндров на диске.
TotalHeads
Только для чтения. Общее количество головок на диске.
TotalSectors
Только для чтения. Общее количество секторов на диске.
TotalTracks
Только для чтения. Общее количество дорожек на диске.
TracksPerCylinder
Только для чтения. Количество дорожек в цилиндре.

Пример получения сведений о дисках . WSH + WMI. Класс Win32_DiskDrive



strComputer = "." WScript.Echo "Физические диски:" Set objWMI = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") set colDisks = objWMI.ExecQuery("select * from Win32_DiskDrive") for each objDisk in colDisks WScript.Echo " Заголовок: " & vbTab & objDisk.Caption &VBCR _ & " ID устройства: " & vbTab & objDisk.DeviceID &VBCR _ & " Производитель: " & vbTab & objDisk.Manufacturer &VBCR _ & " Тип носителя: " & vbTab & objDisk.MediaType &VBCR _ & " Модель: " & vbTab & objDisk.Model &VBCR _ & " Имя: " & vbTab & objDisk.Name &VBCR _ & " Разделы: " & vbTab & objDisk.Partitions &VBCR _ & " Размер: " & vbTab & objDisk.Size &VBCR _ & " Состояние: " & vbTab & objDisk.Status next


И еще один, более развернутый пример работы с классом Win32_DiskDrive.

//************************************************************** // Информация о жестком диске // Win32_DiskDrive //************************************************************** function ifnotnull(p) { if (typeof(p) !== "undefined" && p !== null) { return( p+"\n"); } else return(" не определено\n"); } var forarr = new Array(); var ww; var strComputer, objWMIService, colItems, DiskInfo, objItem, i strComputer = "." objWMIService = GetObject("winmgmts:\\\\" + strComputer + "\\root\\cimv2") colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive"); enumItems = new Enumerator(colItems); for (; !enumItems.atEnd(); enumItems.moveNext()) { objItem = enumItems.item(); DiskInfo = "Информация о жестком диске\n\n"; DiskInfo += "Availability: "+ifnotnull(objItem.Availability); DiskInfo += "BytesPerSector: "+ifnotnull(objItem.BytesPerSector); try { forarr= objItem.Capabilities.toArray(); ww=''; for (dd in forarr) { if (ww.length > 0) ww += ", "; switch (forarr[dd]) { case 0: ww += "Неизвестный"; break case 1: ww += "Другой"; break case 2: ww += "Последовательный доступ"; break case 3: ww += "Произвольный доступ"; break case 4: ww += "Поддержка записи"; break case 5: ww += "Шифрование"; break case 6: ww += "Сжатие"; break case 7: ww += "Поддержка сменных носителей"; break case 8: ww += "Ручная очистка"; break case 9: ww += "Автоматическая очистка"; break case 10: ww += "SMART уведомление"; break case 11: ww += "Поддержка двухсторонних носителей"; break default: ww += "Не известный код"; break } } DiskInfo +="Capabilities: "+ww+"\n"; } catch(e){ DiskInfo += "Capabilities: Не определено \n";} // Проверяем, существует ли массив try { DiskInfo += "CapabilityDescriptions: " + (objItem.CapabilityDescriptions.toArray()).join(",") + "\n"; }catch(e){ DiskInfo += "CapabilityDescriptions: значение отсутствует\n"; } DiskInfo += "Caption: "+ifnotnull(objItem.Caption); DiskInfo += "CompressionMethod: "+ifnotnull(objItem.CompressionMethod); DiskInfo += "ConfigManagerErrorCode: "+ ifnotnull(objItem.ConfigManagerErrorCode); DiskInfo += "ConfigManagerUserConfig: "+ ifnotnull(objItem.ConfigManagerUserConfig); DiskInfo += "CreationClassName: "+ifnotnull(objItem.CreationClassName); DiskInfo += "DefaultBlockSize: "+ifnotnull(objItem.DefaultBlockSize); DiskInfo += "Description: "+ifnotnull(objItem.Description); DiskInfo += "DeviceID: "+ifnotnull(objItem.DeviceID); DiskInfo += "ErrorCleared: "+ifnotnull(objItem.ErrorCleared); DiskInfo += "ErrorDescription: "+ifnotnull(objItem.ErrorDescription); DiskInfo += "ErrorMethodology: "+ifnotnull(objItem.ErrorMethodology); DiskInfo += "Index: "+ifnotnull(objItem.Index); DiskInfo += "InstallDate: "+ifnotnull(objItem.InstallDate); DiskInfo += "InterfaceType: "+ifnotnull(objItem.InterfaceType); DiskInfo += "LastErrorCode: "+ifnotnull(objItem.LastErrorCode); DiskInfo += "Manufacturer: "+ifnotnull(objItem.Manufacturer); DiskInfo += "MaxBlockSize: "+ifnotnull(objItem.MaxBlockSize); DiskInfo += "MaxMediaSize: "+ifnotnull(objItem.MaxMediaSize); DiskInfo += "MediaLoaded: "+ifnotnull(objItem.MediaLoaded); DiskInfo += "MediaType: "+ifnotnull(objItem.MediaType); DiskInfo += "MinBlockSize: "+ifnotnull(objItem.MinBlockSize); DiskInfo += "Model: "+ifnotnull(objItem.Model); DiskInfo += "Name: "+ifnotnull(objItem.Name); DiskInfo += "NeedsCleaning: "+ifnotnull(objItem.NeedsCleaning); DiskInfo += "NumberOfMediaSupported: "+ifnotnull(objItem.NumberOfMediaSupported); DiskInfo += "Partitions: "+ifnotnull(objItem.Partitions); DiskInfo += "PNPDeviceID: "+ifnotnull(objItem.PNPDeviceID); // Проверяем, существует ли массив try { DiskInfo += "PowerManagementCapabilities: " + (objItem.PowerManagementCapabilities.toArray()).join(",") + "\n"; }catch(e){ DiskInfo += "PowerManagementCapabilities: значение отсутствует\n"; } DiskInfo += "PowerManagementSupported: "+ifnotnull(objItem.PowerManagementSupported); DiskInfo += "SCSIBus: "+ifnotnull(objItem.SCSIBus); DiskInfo += "SCSILogicalUnit: "+ifnotnull(objItem.SCSILogicalUnit); DiskInfo += "SCSIPort: "+ifnotnull(objItem.SCSIPort); DiskInfo += "SCSITargetId: "+ifnotnull(objItem.SCSITargetId); DiskInfo += "SectorsPerTrack: "+ifnotnull(objItem.SectorsPerTrack); DiskInfo += "SerialNumber: "+ifnotnull(objItem.SerialNumber); DiskInfo += "Size: "+ifnotnull(objItem.Size); DiskInfo += "StatusInfo: "+ifnotnull(objItem.StatusInfo); DiskInfo += "SystemCreationClassName: "+ifnotnull(objItem.SystemCreationClassName); DiskInfo += "SystemName: "+ifnotnull(objItem.SystemName); DiskInfo += "TotalCylinders: "+ifnotnull(objItem.TotalCylinders); DiskInfo += "TotalHeads: "+ifnotnull(objItem.TotalHeads); DiskInfo += "TotalSectors: "+ifnotnull(objItem.TotalSectors); DiskInfo += "TotalTracks: "+ifnotnull(objItem.TotalTracks); DiskInfo += "TracksPerCylinder: "+ifnotnull(objItem.TracksPerCylinder); // выводим данные WScript.Echo(DiskInfo); }


Требования.

Минимальная клиентская ОС - Windows Vista
Минимальная серверная ОС - Windows Server 2003


Более подробно о классе Win32_DiskDrive смотрите на MSDN.



Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).






  TopList Rambler Top100 own counter Valid XHTML 1.0 Strict Valid CSS Rambler Top100

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка link О авторе

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка Ссылки О авторе Отправить сообщение Карта сайта Поиск по сайту Главная страница

Copyright © 1999 - 2017  Бронислав Краснер