Вывод в текстовый файл
Форматы вывода данных 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).
Рис. 15.1.Пример выходного HTML-файла, полученного с помощью формата HFORM
С помощью формата HTABLE можно поместить всю выводимую информацию в одну HTML-таблицу, в которой каждая строка соответствует одному экземпляру класса. В заголовках столбцов этой таблицы записываются названия выводимых свойств, а в самих столбцах — значения этих свойств. Например, на рис. 15.2 показан открытый в браузере Internet Explorer файл ht.htm, который был сформирован в результате выполнения следующей команды:
/OUTPUT:C:\ht.htm PROCESS LIST BRIEF /FORMAT:HTABLE
Рис. 15.2.Пример выходного HTML-файла, полученного с помощью формата HTABLE
Кроме этого, таблица, получаемая с помощью формата HTABLE, может быть отсортирована по любому столбцу с помощью параметра sortby(название параметра обязательно должно быть набрано маленькими буквами), в качестве значения которого должно быть указано имя нужного столбца (свойства). Например, для получения таблицы процессов, отсортированной по полю Name, нужно выполнить следующую команду:
/OUTPUT:C:\ht.htm PROCESS LIST BRIEF /FORMAT:HTABLE:"sortby=Name"
Вывод в текстовый файл
Для того чтобы перенаправить вывод операторов LIST и GET в текстовый файл, используется параметр /OUTPUT вместе с форматами вывода TEXTTABLE, TEXTTABLEWSYS и TEXTVALUELIST.
Формат TEXTTABLE позволяет получить информацию в табличном виде, где каждая колонка соответствует определенному свойству класса WMI, причем числовые значения форматируются в соответствии с региональными настройками Windows.
Формат TEXTTABLEWSYS также позволяет получить таблицу аналогичной структуры, однако числовые значения здесь выводятся без дополнительного форматирования.
С помощью формата TEXTVALUELIST можно для каждого возвращаемого экземпляра класса WMI получить список пар вида свойство=значение.
Вывод в CSV-файл
Стандартный формат вывода CSV позволяет преобразовывать информацию, возвращаемую командами WMIC, в формат файла с разделителями, при этом в качестве разделителя выступает запятая. Данные файлы потом могут быть легко открыты, например, с помощью программы Microsoft Excel.
Для примера выполним следующую команду:
/OUTPUT:C:\klop.csv PROCESS LIST BRIEF /FORMAT:CSV
В результате на диске C формируется текстовый файл klop.csv, в первой строке которого будут записаны разделенные запятыми названия свойств псевдонима PROCESS, а в остальных строках — значения этих свойств для всех процессов, запущенных в системе:
Node,HandleCount,Name,Priority,ProcessId,ThreadCount,WorkingSetSize,
POPOV,0,System Idle Process,0,0,1,20480,
POPOV,194,System,8,4,50,131072,
POPOV,21,SMSS.EXE,11,364,3,159744,
...
<== предыдущая лекция | | | следующая лекция ==> |
Взаимодействие с Microsoft Word | | | Сценарии WSH как XML-документы. Схема WS XML |
Дата добавления: 2018-03-01; просмотров: 1861;