среда, 2 сентября 2020 г.

Чему может быть равно свойство Status у WMI класса Win32_ComputerSystem?

Это перевод What are the possible Status values for Win32_ComputerSystem? Автор: Реймонд Чен.

Документация для WMI класса Win32_Computer­System содержит такое описание свойства Status:
Status
Тип данных: string
Доступ: только чтение
Квалификаторы: MaxLen (10), DisplayName (“Status”)

Текущее состояние объекта. Могут быть определены различные рабочие и нерабочие состояния. К рабочим статусам относятся: OK, Degraded и Pred Fail. Последнее значение может использоваться, к примеру, жёстким диском с поддержкой SMART, который может функционировать правильно, но прогнозирует сбой в ближайшем будущем. К нерабочим состояниям относятся: Error, Starting, Stopping и Service, которые могут применяться во время переноса зеркала диска, перезагрузки списка разрешений пользователей или другой административной работы.

Это свойство наследуется от CIM_Managed­System­Element.

Значения могут быть следующими:
OK (“OK”)
Error (“Error”)
Degraded (“Degraded”)
Unknown (“Unknown”)
Pred Fail (“Pred Fail”)
Starting (“Starting”)
Stopping (“Stopping”)
Service (“Service”)
Stressed (“Stressed”)
NonRecover (“NonRecover”)
No Contact (“No Contact”)
Lost Comm (“Lost Comm”)
Что эта чушь пытается нам сказать? И что она говорит нам о возможных значениях свойства Status для Win32_Computer­System?

Хорошо, сначала я дам ответ, а потом мы его обсудим.

Ответ заключается в том, что Status для Win32_Computer­System всегда равен "ОК". Сама система не сообщает о каком-либо интересном для себя состоянии, хотя она сообщает о статусе других вещей, например Front­Panel­Reset­Status.

Тогда почему Win32_Computer­System вообще имеет свойство Status, если ничего интересного оно не сообщает?

Подсказка кроется в комментарии, который прятался между описанием и списком значений:
Это свойство наследуется от CIM_Managed­System­Element.
Win32_Computer­System имеет свойство Status не потому, что он хочет сообщать о своём собственном статусе, а потому, что он вынужден сообщать о своём собственном статусе из-за наследования.

Это также объясняет бессвязное описание: это описание также было унаследовано от CIM_Managed­System­Element. Класс CIM_Managed­System­Element должен описывать все возможные элементы системы, поэтому он имеет большое количество доступных значений для Status, а в документации делается попытка объяснить, что означают эти значения статуса, поскольку они могут применяться к произвольным производным классам.

Тут помогли бы кой-какое переформатирование и дополнительные уточняющие слова:
Текущее состояние объекта.

Могут быть определены различные рабочие и нерабочие состояния.

К рабочим статусам относятся: OK, Degraded и Pred Fail (Pred Fail может сообщать, к примеру, жёсткий диск с поддержкой SMART, который может функционировать должным образом, но прогнозирует сбой в ближайшем будущем).

К нерабочим состояниям относятся: Error, Starting, Stopping и Service (Service может возвращаться во время перенастройки зеркалирования диска, перезагрузки списка разрешений пользователей или другой административной работы. Такая работа может привести к временному отключению элемента).

Это свойство наследуется от CIM_Managed­System­Element. Не все значения статуса, описанные здесь, могут применяться к производному классу.
Но на самом деле описание этого свойства должно быть помечено как ненаследуемое (даже если свойство унаследовано), а вместо него должно использоваться специальное описание:
Текущее состояние объекта.

Для Win32_Computer­System всегда равно "OK".

Это свойство наследуется от CIM_Managed­System­Element.
И именно это документация теперь и говорит.

Комментариев нет:

Отправка комментария

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку.

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.