Запуск WMIC. Использование встроенной справки
Доступ к WMI из командной строки. Командная оболочка WMIC
В Windows XP и Windows Server 2003 к подсистеме WMI можно обращаться непосредственно из командной строки без помощи графических утилит и составления сложных сценариев. Для этого используется программа WMIC (WMI Command-line), которая поддерживает навигацию по информационной схеме WMI локального или удаленного компьютера, позволяя выполнять WQL-запросы к классам и объектам WMI. При этом вместо сложных названий классов WMI используются простые псевдонимы, причем можно создавать собственные псевдонимы, что делает информационную схему WMIC расширяемой.
По умолчанию WMIC поддерживает около 80 псевдонимов, с помощью которых можно выполнить 150 методов и получить значения множества свойств. Важной особенностью WMIC является то, что вывод команд может быть организован в различные форматы: на экран, в текстовый файл, в XML- и HTML-документы, в MOF-файл, в текстовый файл с разделителями или в любой другой формат, определяемый пользователем с помощью таблиц стилей XSL (eXtensible Stylesheet Language).
Одна команда WMIC может быть применена сразу к нескольким удаленным компьютерам с любой 32-разрядной версией Windows, при этом наличие WMIC на удаленной машине не требуется, необходима только установка ядра WMI и соответствующая настройка прав доступа к WMI. Кроме этого, команды WMI могут использоваться в пакетных файлах Windows, что позволяет простыми средствами автоматизировать работу с WMI на локальных или удаленных компьютерах.
В качестве недостатка WMIC можно отметить отсутствие встроенной полноценной поддержки и обработки событий WMI.
Запуск WMIC. Использование встроенной справки
С WMIC можно работать в двух режимах: интерактивном и пакетном. В интерактивном режиме с клавиатуры вводится последовательность команд WMIC, которые сразу же выполняются. Кроме этого, в интерактивном режиме удобнее работать со встроенной помощью WMIC. Пакетный режим позволяет запускать предварительно подготовленный командный (пакетный) файл с командами WMIC или выполнять из командной строки операционной системы единственную команду WMIC.
Для запуска WMIC в интерактивном режиме необходимо выполнить команду wmic в стандартном интерпретаторе команд cmd.exe или в диалоговом окне Выполнить (Run) в меню Пуск (Start). После этого на экран выводится стандартное приглашение WMIC, wmic:root\cli>.
После этого можно вводить с клавиатуры команды WMIC (регистр символов значения не имеет), которые запускаются после нажатия клавиши <Enter>. Например, если набрать в командной строке WMIC слово PROCESS и нажать <Enter>, то на экран выведется список всех процессов, запущенных в данный момент в системе:
wmic:root\cli>PROCESS
Caption CommandLine
System Idle Process
System
smss.exe \SystemRoot\System32\smss.exe
csrss.exe C:\WINDOWS.1\system32\csrss.exe ObjectDirectory=.\. . .
services.exe C:\WINDOWS.1\system32\services.exe
lsass.exe C:\WINDOWS.1\system32\lsass.exe
svchost.exe C:\WINDOWS.1\system32\svchost -k DcomLaunch
svchost.exe C:\WINDOWS.1\system32\svchost -k rpcss
svchost.exe C:\WINDOWS.1\System32\svchost.exe -k netsvcs
. . .
Если же ввести в командной строке WMIC слово OS, то мы увидим на экране свойства операционной системы, установленной на компьютере:
wmic:root\cli>OS
BootDevice BuildNumber BuildType Caption
\Device\HarddiskVolume1 2600 Uniprocessor Free Microsoft Windows . . .
14.1.
Естественно, это лишь самые простые примеры использования командной строки WMIC. Для того чтобы узнать о дополнительных возможностях WMIC, можно воспользоваться встроенной помощью, которая вызывается с помощью ключей /? или -?. Например, набрав один из этих ключей после слова PROCESS и нажав клавишу <Enter>, мы выведем справку, из которой, скажем, видно, что команда OS CALL позволяет выполнять некоторые действия над процессами:
wmic:root\cli>OS -?
OS - Управление установленными операционными системами.
СОВЕТ. BNF при работе с псевдонимом.
(<псевдоним> [WMI-объект] | <псевдоним> [<путь where>] |
[<псевдоним>] . . .
Использование:
OS ASSOC [<указатель формата>]
OS CALL <имя метода> [<список фактических параметров>]
OS CREATE <список значений>
OS DELETE
OS GET [<список свойств>] [<ключи get>]
OS LIST [<формат списка>] [<ключи>]
OS SET [<список значений>]
Выполнив теперь команду PROCESS CALL /?, мы получим краткое описание методов, которые могут быть вызваны при работе с процессами:
wmic:root\cli>PROCESS CALL /?
Вызов методов.
Использование:
CALL <имя метода> [<список фактических параметров>]
ЗАМЕЧАНИЕ. <список фактических параметров> ::= <факт. парам.> |
<факт. парам.>, <
Для псевдонима доступны следующие команды и методы:
Вызов [ Ввод/Вывод ]Параметры и тип Состояние
==== ===================== ======
AttachDebugger (null)
Create [UNKNOWN]CommandLine(STRING) (null)
[UNKNOWN]CurrentDirectory(STRING)
[UNKNOWN]ProcessStartupInformation(OBJECT)
[UNKNOWN]ProcessId(UINT32)
GetOwner [UNKNOWN]Domain(STRING) (null)
[UNKNOWN]User(STRING)
GetOwnerSid [UNKNOWN]Sid(STRING) (null)
SetPriority [IN ]Priority(SINT32) (null)
Terminate [UNKNOWN]Reason(UINT32) (null)
Для получения более подробной помощи по этим методам нужно выполнить команду PROCESS CALL /?:FULL:
wmic:root\cli>PROCESS CALL /?:FULL
Вызов методов.
Использование:
CALL <имя метода> [<список фактических параметров>]
ЗАМЕЧАНИЕ. <список фактических параметров> ::= <факт. парам.> |
<факт. парам.>, <список факти
Для псевдонима доступны следующие команды и методы:
Вызов [ Ввод/Вывод ]Параметры и тип Состояние
==== ===================== ======
AttachDebugger (null)
Описание:
The AttachDebugger method launches the currently
registered debugger for this . . .
Create [UNKNOWN]CommandLine(STRING) (null)
[UNKNOWN]CurrentDirectory(STRING)
[UNKNOWN]ProcessStartupInformation(OBJECT)
[UNKNOWN]ProcessId(UINT32)
Описание:
The Create method creates a new process.
It returns an integer value of 0 . . .
. . .
Ключи /? и -? можно ввести и сразу после приглашения WMIC. В этом случае будет выведена общая информация о глобальных ключах, доступных псевдонимах и командах WMIC.
Пакетный режим работы, как отмечалось ранее, подразумевает запуск команд WMIC непосредственно из командной строки Windows или из пакетного файла. Для этого перед нужной командой пишется слово WMIC. При выполнении такой конструкции запускается WMIC, выполняется требуемая команда, после чего управление вновь передается командной строке Windows.
Например, для того чтобы вывести в пакетном режиме на экран свойства операционной системы, нужно в командной строке Windows выполнить команду WMIC OS.
Архитектура WMIC
Главными составными частями WMIC являются псевдонимы (aliases), средство синтаксического анализа и разбора вводимых команд (parser) и средства трансформации выходной информации в нужный формат.
Псевдонимы (aliases) в WMIC — это определения классов WMI, которые упрощают обращение к этим классам и их свойствам. Например, классу Win32_Process соответствует псевдоним PROCESS, а классу Win32_OperatingSystem — псевдоним OS. Таким образом, можно сказать, что псевдонимы выступают в качестве дружественных посредников между объектной моделью WMI и администратором операционной системы.
Стандартные псевдонимы определены для большинства часто используемых классов WMI, в случае необходимости можно создавать собственные псевдонимы или изменять существующие. Хранятся псевдонимы в виде экземпляров класса MSFT_CliAlias из пространства имен Root\Cli.
Пространство имен Root\Cli называется ролью (role) , в нем находятся и другие классы, связанные с WMIC ( MSFT_CliVerb, MSFT_CliFormat, MSFT_CliParam, MSFT_CliProperty, MSFT_CliConnection, MSFT_CliTranslateTable и т. д.). Вообще говоря, WMIC позволяет определить несколько ролей и производить переключение между ними, т. е. в CIM может быть помещено несколько независимых пространств имен, содержащих описания псевдонимов WMIC.
Над псевдонимами можно производить различные операции, которые определяются операторами, вводимыми в командной строке WMIC после имени псевдонима. Обработчик (парсер) для синтаксического разбора, интерпретации и выполнения операций с псевдонимами представлен исполняемым файлом wmic.exe, который находится в каталоге %SystemRoot%\System32\Wbem.
На рис. 14.1 представлена общая схема работы WMIC.
Рис. 14.1.Схема работы WMIC
Итак, WMIC функционирует следующим образом. Обработчик wmic.exe получает введенную команду через стандартный входной поток Stdin. Парсер выполняет синтаксический разбор команды, выделяет псевдоним (если таковой имеется) и извлекает определение этого псевдонима для активной роли (напомним, что роли по умолчанию соответствует пространство имен Root\Cli). Кроме псевдонима в командной строке WMIC могут стоять операторы, задающие действие, которое нужно выполнить над псевдонимом. Обработка команды WMIC сводится, в конечном итоге, к выполнению последовательности вызовов соответствующих API-функций WMI в пространстве имен на локальном или удаленном компьютере.
Данные, которые возвращаются WMI в результате выполнения этих API-функций, автоматически преобразуются в формат XML. После этого данные форматируются тем или иным способом в соответствии с таблицей стилей XSL (eXtensible Stylesheet Language), которая связана с псевдонимом по умолчанию или явно задана с помощью соответствующих параметров оператора. Отформатированная информация возвращается пользователю через стандартный выходной поток Stdout.
Дата добавления: 2018-03-01; просмотров: 1729;