WMIC: служебная программа командной строки WMI
WMIC является нерекомендуемой с Windows 10 версии 21H1, а также с версии 21H1 semi-annual channel выпуска Windows Server. Эта служебная программа заменена Windows PowerShell для WMI. См. раздел Глава 7. Работа с WMI. Эта устаревание применяется только к служебной программе WMIC. Сама инструментарий управления Windows (WMI) не влияет. См. также Windows 10 функции, которые мы больше не разрабатываем.
Программа командной строки WMI (WMIC) предоставляет интерфейс командной строки для инструментария управления Windows (WMI). WMIC совместим с существующими оболочками и служебными командами. Ниже приведены общие справочные материалы по WMIC. Дополнительные сведения и рекомендации по использованию WMIC, включая дополнительные сведения о псевдонимах, командах, параметрах и командах, см. в разделах Использование командной строки инструментария управления Windows и WMIC — управление WMI из командной строки.
Псевдоним
Псевдоним — это понятное переименование класса, свойства или метода, которое упрощает использование и чтение WMI. Вы можете определить, какие псевдонимы доступны для WMIC, с помощью /? команды . Вы также можете определить псевдонимы для определенного класса с помощью /? команды . Дополнительные сведения см. в разделе Псевдонимы WMIC.
Коммутатор
Параметр — это параметр WMIC, который можно задать глобально или необязательно. Список доступных коммутаторов см. в разделе Коммутаторы WMIC.
Команды
Чтобы использовать команды в WMIC, введите имя псевдонима, за которым следует глагол. Если псевдоним не поддерживает глагол, вы получите сообщение «Поставщик не поддерживает предпринятую операцию». Дополнительные сведения см. в разделе Команды WMIC.
Большинство псевдонимов поддерживают следующие команды:
ДОЦ
Возвращает результат запроса, Associators of () где — это путь к объектам, возвращаемым командами PATH или CLASS . Результаты представляют собой экземпляры, связанные с объектом . При ASSOC использовании с псевдонимом возвращаются классы с классом, лежащим в основе псевдонима. По умолчанию выходные данные возвращаются в формате HTML.
Команда ASSOC имеет следующие параметры:
Параметр | Описание |
---|---|
/RESULTCLASS: | Возвращаемые конечные точки, связанные с исходным объектом, должны принадлежать или быть производными от указанного класса. |
/RESULTROLE: | Возвращаемые конечные точки должны играть определенную роль в связи с исходным объектом. |
/ASSOCCLASS: | Возвращаемые конечные точки должны быть связаны с источником через указанный класс или один из его производных классов. |
Например, os assoc .
CALL
Например, service where caption=»telnet» call startservice .
Чтобы определить методы, доступные для данного класса, используйте /? . Например, service where caption=»telnet» call /? выводит список доступных функций для класса службы.
CREATE
Создает новый экземпляр и задает значения свойств. CREATE нельзя использовать для создания нового класса.
Например, environment create name=»temp»; variablevalue=»new» .
DELETE
Удаляет текущий экземпляр или набор экземпляров. DELETE можно использовать для удаления класса.
Например, process where name=»calc.exe» delete .
GET
Извлекает определенные значения свойств.
GET имеет следующие параметры:
Параметр | Описание |
---|---|
/VALUE | Выходные данные форматируются с каждым значением, перечисленным в отдельной строке, и с именем свойства . |
/ALL | Выходные данные форматируются в виде таблицы. |
/TRANSLATE: | Преобразует выходные данные с помощью таблицы перевода с именем команды . Таблицы перевода BasicXml и NoComma включены в WMIC. |
/EVERY: | Повторяет команду каждые . |
/FORMAT: | Задает ключевое слово или имя XSL-файла для форматирования данных. |
Например, process get name .
Список
Показывает данные. LIST — это глагол по умолчанию.
LIST имеет следующие наречия:
Наречие | Описание |
---|---|
BRIEF | Основной набор свойств |
FULL | Полный набор свойств. Это наречие по умолчанию для LIST |
INSTANCE | Только пути к экземплярам |
STATUS | Состояние объектов |
SYSTEM | Свойства системы |
LIST имеет следующие параметры:
Параметр | Описание |
---|---|
/TRANSLATE: | Переведите выходные данные с помощью таблицы перевода с именем команды . Таблицы перевода BasicXml и NoComma включены в WMIC. |
/EVERY: | Повторяйте команду каждые . |
/FORMAT: | Задает ключевое слово или имя XSL-файла для форматирования данных. |
Например, process list brief .
SET
Присваивает значения свойствам.
Пример: environment set name=»temp» , variablevalue=»new» .
Коммутаторы
Глобальные коммутаторы используются для задания значений по умолчанию для среды WMIC. Текущее значение условий, заданных этими параметрами, можно просмотреть, введя CONTEXT команду .
/ПРОСТРАНСТВА ИМЕН
Пространство имен, обычно используемое псевдонимом. Значение по умолчанию — root\cimv2 .
/ROLE
Пространство имен, в которое WMIC обычно ищет псевдонимы и другие сведения О WMIC.
/УЗЛА
Имена компьютеров, разделенные запятыми. Все команды синхронно выполняются на всех компьютерах, перечисленных в этом значении. Имена файлов должны иметь префикс &. Имена компьютеров в файле должны быть разделены запятыми или находиться в отдельных строках.
/IMPLEVEL
/AUTHLEVEL
Уровень проверки подлинности.
wmic
Note: “There is a Linux port of WMI command line tool”.
wmic is deprecated: “text encoding is a mess. Some programs output using the OEM codepage, some use the ANSI codepage, some use the current console input or output codepage, and some can do UTF-16, but usually only to a disk file (e.g. wmic.exe).”
Hence, instead of wmic memorychip get capacity , use:
Get-CimInstance -ClassName Win32_PhysicalMemory | Select-Object capacity
The rest are examples of wmic use. For a full list of commands use wmic -? .
wmic bios
Try wmic bios list full or, e.g.,
$ wmic bios get serialnumber SerialNumber PF1JZKC1
wmic cpu
Try wmic cpu list full or, e.g.,
$ wmic cpu get name Name Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
wmic computersystem
$ wmic computersystem get name Name L07A97UF
wmic csproduct
Try wmic csproduct list full or, e.g.,
$ wmic csproduct get name Name 20M9CTO1WW
wmic memorychip
Display memory information:
C:\Users\asoko>wmic memorychip get banklabel, devicelocator, manufacturer, partnumber, speed, serialnumber, capacity BankLabel Capacity DeviceLocator Manufacturer PartNumber SerialNumber Speed BANK 0 8589934592 ChannelA-DIMM0 Samsung M471A1K43CB1-CTD 410C6036 2667 BANK 1 8589934592 ChannelA-DIMM1 Micron 8ATF1G64HZ-2G6E1 212DCB8B 2667 BANK 2 8589934592 ChannelB-DIMM0 Samsung M471A1K43CB1-CTD 410C60C6 2667 BANK 3 8589934592 ChannelB-DIMM1 Micron 8ATF1G64HZ-2G6E1 1DFE21C7 2667
wmic memorychip list full
wmic process
wmic process get name,processid
You can also use queries:
wmic process where ExecutablePath='C:\\windows\\system32\\notepad.exe' get ProcessId
wmic process where "name='chrome.exe'" get ProcessID, ExecutablePath
WMIC. Краткий обзор возможностей
Windows Management Instrumentation (WMI) — инструментарий управления Windows.
Инструментарий WMI, основанный на CIM, является открытой унифицированной системой интерфейсов доступа к любым параметрам операционной системы , устройствам и приложениям, которые функционируют в ней, и используется для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows.
Предположим что мы не имеем понятия к каким свойствам класса BIOS мы можем обратиться. Что бы просмотреть список всех доступных свойств, средствами CMD, введите следующую команду:
wmic BIOS get /?
Аналогично можно вызвать справку для любого класса WMI
Алиасы
Хочу обратить внимание на то, что для удобства в консольной утилите WMIC, мы работаем не напрямую с классами WMI, а с их алиасами
# Все алиасы мы видим когда набираем wmic /? # Или отдельно выводим их на экран wmic alias list brief
Форматирование вывода
Так как по умолчанию wmic возвращает не форматированный ответ, то если не определить форматирование вручную, мы увидим хаотически разбросанные по окну консоли слова:
Весьма информативно, не правда ли?
Для того что бы получить читаемый вывод, попробуйте использовать такую команду:
wmic BIOS list brief
Параметр brief выводит список основных параметров.
Обычно не более 6 столбцов
Все типы форматов я смотрю такой командой:
wmic OS get /format /?
Можно использовать функцию /format, с любым доступным типом формата:
wmic BIOS get /format:list
Такой же вывод, как и в предыдущей команде, можно получить и следующим образом:
wmic BIOS list full
Запуск и завершение приложений
wmic process call create 'notepad.exe'
wmic process where name='notepad.exe' delete
Выполнение команды wmi на удаленных хостах
wmic /node:'Server' OS get Caption
Примеры WMI команд
Получить модель материнской платы
wmic baseboard get product,manufacturer,version,serialnumber
Узнать разрядность системы
wmic /Node:%ComputerName% Path Win32_Processor Get AddressWidth /format:list # Аналог команды для PoSh ( Get-WmiObject Win32_OperatingSystem ).OSArchitecture
Получить программы из автозагрузки
wmic startup list brief
Узнать имя активного пользователя
wmic /node:%ComputerName% path Win32_ComputerSystem get username
Просмотр списка пользователей компьютера
wmic useraccount list full
Просмотр списка принтеров удаленного компьютера
wmic /node:'Host0042' printer get name
Получить информацию по оперативной памяти
wmic memorychip get BankLabel, DeviceLocator, Capacity, Speed
При подготовке материала использовались источники:
https://learn.microsoft.com/ru-ru/windows/win32/wmisdk/wmic
https://asokolsky.github.io/windows/cli-wmic.html