Опубликован: 12.01.2008 | Уровень: специалист | Доступ: свободно
Лекция 15:

Форматы вывода данных WMIC. Типичные команды для администрирования

< Лекция 14 || Лекция 15: 123 || Лекция 16 >
Аннотация: Обсуждаются форматы вывода для команд WMIC. Даются примеры команд WMIC, которые могут оказаться полезными для администратора операционной системы
Ключевые слова: XSL, CIM

Форматы вывода данных WMIC. Типичные команды для администрирования

Как уже отмечалось ранее, WMIC обеспечивает очень гибкий механизм представления выходной информации с помощью таблиц стилей XSL. Рассмотрим стандартные для WMIC форматы вывода.

Стандартные форматы вывода

По умолчанию WMIC поддерживает несколько форматов вывода.

Вывод в буфер Windows

Иногда бывает удобно перенаправить вывод команд WMIC в буфер Windows, например, для последующей вставки результатов выполнения команды в документ Microsoft Word. Для этого нужно в командной строке WMIC глобальному параметру /OUTPUT присвоить значение CLIPBOARD:

/OUTPUT:CLIPBOARD

После этого в буфере будет сохраняться информация, выведенная последней выполненной командой WMIC.

Вывод в XML-файл

Сохранять в XML-файле информацию о запускаемых командах WMIC и выводимых ими результатах можно двумя способами: с помощью глобального параметра /RECORD или с помощью формата вывода RAWXML.

Если в XML-файле не нужно будет производить детальный разбор выводимых командами данных, то проще задать выходной файл с помощью параметра /RECORD, например:

/RECORD:C:\out_wmic.xml

После этого каждой вводимой команде WMIC в этом файле будет соответствовать элемент <RECORD>, внутри которого будут записаны элементы <REQUEST> с информацией о команде и <OUTPUT> с результатом выполнения команды в блоке <![CDATA[.

Для того чтобы отменить такой вывод в XML-файл, нужно либо закрыть сеанс WMIC, либо присвоить параметру /RECORD пустое значение: /RECORD:""

Если же требуется полностью структурировать выводимую командами LIST или GET информацию, то можно воспользоваться форматом вывода RAWXML и перенаправить вывод во внешний файл с помощью параметра /OUTPUT, например:

/OUTPUT:C:\out_xml.xml CPU LIST BRIEF /FORMAT:RAWXML

Корневым элементом в файле out_xml.xml будет элемент <COMMAND>, в атрибутах которого записан порядковый номер выполняемой команды в сеансе WMIC ( SEQUENCENUM ), имя компьютера, на котором была запущена команда ( ISSUEDFROM ), время начала выполнения команды ( STARTTIME ) и количество повторов команды ( EVERYCOUNT ).

Элемент <REQUEST> является контейнером, внутри которого находятся элементы, содержащие информацию о запущенной команде и значениях параметров WMIC, которые были установлены во время запуска команды.

Элемент <COMMANDLINE> содержит полный текст запускаемой программы:

<COMMANDLINE> /OUTPUT:C:\out_xml.xml CPU LIST BRIEF /
  FORMAT:RAWXML </COMMANDLINE>

В контейнере <COMMANDLINECOMPONENTS> находятся элементы, полученные в результате разбора командной строки. Элемент <NODELIST> содержит список компьютеров (элементы <NODE> ), на которых запускалась команда.

В элементе <FRIENDLYNAME> хранится имя используемого псевдонима WMIC, в <TARGET> — текст WQL-запроса, который соответствует псевдониму, в <ALIASTARGET> — название класса WMI, к которому происходит обращение:

<FRIENDLYNAME>CPU</FRIENDLYNAME> 
<TARGET>Select * from WIN32_PROCESSOR</TARGET> 
<ALIASTARGET>WIN32_PROCESSOR</ALIASTARGET>

Элемент <NAMESPACE> содержит путь к используемому пространству имен CIM, в элементе <RESULTANTQUERY> записан текст WQL-запроса, который был выполнен при запуске команды (в нашем примере этот запрос построен с учетом модификатора BRIEF ):

<NAMESPACE>ROOT\CIMV2</NAMESPACE> 
<RESULTANTQUERY> SELECT Caption, DeviceID, Manufacturer, 
  MaxClockSpeed, Name, SocketDesignation FROM WIN32_PROCESSOR 
    </RESULTANTQUERY>

В элементе <FORMATS> приведен список XSL-файлов, которые используются для форматирования результатов выполнения команды.

В элементе <PROPERTIES> находятся описания всех свойств класса WMI, которые фигурируют в выполняемом запросе. Каждому такому свойству соответствует элемент <PROPERTY>.

Значения всех глобальных параметров WMIC, каждому из которых соответствует свой XML-элемент, собраны внутри контейнера <CONTEXT>.

Результаты выполнения запущенной команды находятся внутри элемента <CIM> в контейнере <RESULTS>.

Внутри контейнера <CIM> находятся элементы <INSTANCE>, соответствующие экземплярам класса WMI, выбранным в результате выполнения WQL-запроса. Каждый элемент <INSTANCE> содержит элементы <PROPERTY>, соответствующие свойствам экземпляра класса WMI (имя свойства записано в атрибуте NAME, тип свойства — в атрибуте TYPE ). Внутри элемента <PROPERTY> находится элемент <VALUE>, значение которого совпадает со значением соответствующего свойства экземпляра класса WMI.

Вывод в HTML-файл

С помощью стандартных форматов вывода HFORM и HTABLE можно, используя параметр /OUTPUT, сформировать HTML-файлы двух видов с результатами выполнения операторов LIST и GET.

Формат вывода HFORM позволяет представить выходную информацию в виде совокупности HTML-таблиц для каждого из экземпляров класса, выбранного в результате выполнения команды. При этом в первом столбце этих таблиц записывается имя свойства, а во втором — значение этого свойства. Например, выполним команду

/OUTPUT:C:\hf.htm PROCESS LIST BRIEF /FORMAT:HFORM

и откроем полученный файл hf.htm с помощью браузера Internet Explorer (рис. 15.1).

Пример выходного HTML-файла, полученного с помощью формата HFORM

Рис. 15.1. Пример выходного HTML-файла, полученного с помощью формата HFORM

С помощью формата HTABLE можно поместить всю выводимую информацию в одну HTML-таблицу, в которой каждая строка соответствует одному экземпляру класса. В заголовках столбцов этой таблицы записываются названия выводимых свойств, а в самих столбцах — значения этих свойств. Например, на рис. 15.2 показан открытый в браузере Internet Explorer файл ht.htm, который был сформирован в результате выполнения следующей команды:

/OUTPUT:C:\ht.htm PROCESS LIST BRIEF /FORMAT:HTABLE
Пример выходного HTML-файла, полученного с помощью формата HTABLE

увеличить изображение
Рис. 15.2. Пример выходного HTML-файла, полученного с помощью формата HTABLE

Кроме этого, таблица, получаемая с помощью формата HTABLE, может быть отсортирована по любому столбцу с помощью параметра sortby (название параметра обязательно должно быть набрано маленькими буквами), в качестве значения которого должно быть указано имя нужного столбца (свойства). Например, для получения таблицы процессов, отсортированной по полю Name, нужно выполнить следующую команду:

/OUTPUT:C:\ht.htm PROCESS LIST BRIEF /FORMAT:HTABLE:"sortby=Name"
< Лекция 14 || Лекция 15: 123 || Лекция 16 >
Валентина Тюрина
Валентина Тюрина
Нажатие кнопок в сторонних программах
Александр Тагильцев
Александр Тагильцев
Где проводится профессиональная переподготовка?
Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Игорь Ермачков
Игорь Ермачков
Латвия, Рига