Продолжая тему утилиты WMIC командной строки, в этой третьей части мы рассмотрим основные операторы, так сказать, продолжим разминку.
И так, начнем…
Операторы утилиты WMIC
ASSOC– позволяет получить список классов, связанных с объектом, путь к которому прописан с помощью псевдонима или WMIC команд PATH и CLASS. Например:
CLASS Win32_Process ASSOC |
Список связанных классов можно получить и с помощью утилиты CIM Studio.
Если применять оператор ASSOC для экземпляров классов, то произойдет вывод путей к объектам, связанных с этими экземплярами. Например:
PROCESS WHERE (name="cmd.exe") ASSOC |
или
PATH Win32_Process WHERE (name="cmd.exe") ASSOC |
CALL – выполнение метода для заданного класса или экземпляра класса WMI, путь к которым можно задавать с помощью псевдонимом или команд CLASS и PATH. Для просмотра доступных методов можно использовать справку WMIC или утилиту WMI CIM Studio.
Пример вывода короткой справки WMIC по классу Win32_Process:
PROCESS CALL /?
|
или
CLASS Win32_Process CALL /?
|
Пример вывода полной справки WMIC по классу Win32_Process:
PROCESS CALL /?:FULL
|
или
CLASS Win32_Process CALL /?:FULL
|
Запуск процесса notepad.exe (калькулятор):
PROCESS CALL Create notepad.exe |
Завершение работы процесса notepad.exe:
PROCESS WHERE Name="notepad.exe"CALL Terminate |
CREATE – создание нового экземпляра класса и присваивание значений для его свойств. Метод не дает возможности создавать новый класс.
Пример создания системной переменной Envir со значением 2013, которая будет доступна всем:
ENVIRONMENT CREATE Name="Envir", VariableValue ="2013", UserName="<SYSTEM>" |
SET – изменение заданных значений свойств для одного или нескольких экземпляров класса WMI. Экземпляры можно задавать с помощью псевдонимов или команды CLASS.
Пример изменения значения системной переменной:
ENVIRONMENT WHERE Name="Envir"SET Name="EnvirNew", VariableValue="2014" |
DELETE – удаление экземпляра или группы экземпляров класса, также данный оператор WMIC может применяться для удаления класса.
Пример удаления системной переменной:
ENVIRONMENT WHERE Name="Envir" DELETE |
GET – используется для получения значения заданных свойств экземпляров классов в комбинации с псевдонимом или командой PATH. При использовании WMIC команды CLASS будет получено описание заданного класса. Например:
CLASS Win32_Process GET PROCESS GET Name, Handle |
/VALUE– вывод каждого свойства в отдельной строке, параметр актуален в комбинации с GET. Например:
PROCESS GET Name, Handle /VALUE
|
/ALL– вывод свойств в виде таблицы, используется по умолчанию.
/EVERY – позволяет периодически выполнять заданное выражение. Параметр принимает числовое значение (количество секунд), которое определяет, через, сколько вновь выполнить выражение. Например:
PROCESS GET Name,Handle /EVERY:5 |
/REPEAT– аналог предыдущего WMIC оператора, то тут задается количество вызовов выражения. Для задания интервала времени между выводами, можно использовать параметр EVERY. Например:
PROCESS GET Name,Handle /EVERY:5 /REPEAT:3 |
Тут произойдет выполнение выражения PROCESS GET Name,Handle три раза с интервалом в пять секунд.
LIST – аналог команды GET, но с некоторыми изменениями. Данный оператор не позволяет выводить данные для произвольных свойств экземпляров класса. Тут только можно выбрать один из имеющихся наборов свойств, задаваемых модификаторами.
Синтаксис WMIC команды LIST:
LIST [<модификатор>] [<параметры>]
Что бы определить доступные модификаторы для заданного псевдонима, нужно воспользоваться справкой WMIC для команды LIST в комбинации с нужным псевдонимом, например:
PROCESS LIST /? SERVICE LIST /? |
И так, наконец то третья часть разминки по утилите командной строки WMIC закончена. Если что, можно быстро пробежаться по первой и второй частям. Впереди довольно трудоемкая работа – нужно в рубрику “WMI — классы и объекты” закинуть описания нескольких классов (штук 100), с примерами их применения в сценариях Windows Script Host и в самой командной строке. Будет время, отчитаюсь по проделанной работе, все удачи и подписывайтесь на обновления блога.