WMIC в примерах. Часть 1.
Незаслуженно забываемый инструмент под названием WMIC бывает довольно полезен, например когда нет желания или возможности заморачиваться со скриптами на PowerShell или на Vbs.
PowerShell может быть элементарно не установлен, а на vbs писать просто лень, в итоге мы судорожно начинаем искать софт который нам соберет нужную информацию. Софта с нужным функционалом не находится потому то что есть платное, но нас душит жаба и поэтому мы садимся и пишем то что требуется руками
Конечно, для решения мега-задач WMIC конечно же не подходит, но базовые вещи, например сбор свободного места на дисках, информация о системе и пр. посмотреть можно.
Запуск инструмента производится с помощью команды wmic. В командной строке открывается приглашение вот такого вида:
wmic:root\cli>
Функционал небогатый но он хорошо документирован.
wmic:root\cli>/?
Если требуется полная справка то команда выглядит слегка неожиданно
wmic:root\cli>/?:full
Информация о системе
Получаем сведения о системе по команде
wmic:root\cli>os
выводится довольно много информации и что бы хоть как то ее разделить есть команда
wmic:root\cli>os list /?
Которая выводит список возможных параметров фильтрации информации.
Для примера можно взять ключи STATUS или BRIEF
wmic:root\cli>os list Status wmic:root\cli>os list Brief
Полученную информацию можно вывести в виде списка или таблицы
wmic:root\cli>os list Brief /format:list wmic:root\cli>os list Brief /format:table
Для того что бы не перебирать все параметры можно получить всю в виде списка
wmic:root\cli>os get * /format:list
С помощью данного инструмента можно получать информацию с удаленных хостов. Для этого достаточно использовать ключ /node: с указанием имени хоста.
wmic:root\cli>/node:"host-01" computersystem list brief /format:list wmic:root\cli>/node:"host-01", "host-02" computersystem list brief /format:list
В случае если у вас много хостов то в качестве исходных данных можно подпихнуть файл.
wmic:root\cli>/node:@c:\Scripts\hostlist.txt computersystem list brief /format:list
Если вы работаете не под учетной записью пользователя имеющего повышенные полномочия, я искренне надеюсь что это так и есть, то вам понадобится указывать учетные данные. Выполняется это в формате.
wmic:root\cli>/node:"host-01" /user:LAB\lab.admin computersystem list brief /format:list wmic:root\cli>/node:"host-01" /user:LAB\lab.admin /password:"$F#IPV&G5AWSY%Cx" computersystem list brief /format:list
Если требуется вывести результат в файл то используем ключ “/Output”
wmic:root\cli>/node:@c:\Scripts\hostlist.txt /Output:"C:\Scripts\ProcessorReport.txt" cpu get Systemname,Name,Description,Manufacturer,AddressWidth,DeviceID /format:list
Информация о дисках
Сбор данных о дисках выполняется с той же легкостью и синтаксис запроса прост.
wmic:root\cli>logicaldisk list brief /format:list
Собираем данные о всех дисках с типом “3″
wmic:root\cli>logicaldisk where drivetype=3 get Name,Size,Freespace
Собираем данные о всех дисках с буквой “Z:”
wmic:root\cli>logicaldisk where name='Z:' get size,freespace,volumename
Информация о логических дисках на удаленных хостах собирается аналогично первому пункту.
Информация о сетевой карте
Немного, но хоть что то…
wmic:root\cli>nic get * /format:list wmic:root\cli>nic get macaddress,description
Информация о сервисах
Для получения представления о том что можно делать с сервисами вводим
wmic:root\cli>service /?
Выводится список методов в списке которых есть все нужное для создания, модификации существующих, остановки, старта и пр.
Для фильтрации вывода используется стандартные команды “where”, “and” или “or”. Вот пример того как можно получить список всех запущенных сервисов имеющих тип запуска “Auto”
wmic:root\cli>service where 'startmode="Auto" AND state<>"Running"' get Name,Startmode,State
Информация о процессах
Следующим объектом для исследования будет команда process, которая позволяет получать информацию о запущенных процессах а так же управлять ими.
Выводим список процессов так
wmic:root\cli>process list brief
или так
wmic:root\cli>process get name,processid
Ищем среди них cmd.exe
wmic:root\cli>process where description='cmd.exe' list brief
Создаем новый процесс notepad.exe
wmic:root\cli>process call create notepad.exe
Завершаем процесс по его ID
wmic:root\cli>process where processid="1000" call terminate
Установленные программы и обновления
Для получения списка установленных программ вводим
wmic:root\cli>product get name > programlist.txt
Выводим список всех установленных обновлений в файл
wmic:root\cli>qfe list > updatelist.txt
Похожие статьи
Информация об авторе
no image |
Сергей Мариничев. Вы можете присоединиться ко мне в Facebook или в Twitter. |
А также бесплатно подписаться по E-mail и получать актуальную информацию в числе первых.
Вы можете оставить комментарий.