WMIC – выполнить сценарий WMI в командной строке

Команда WMIC (Windows Management Instrumentation Command) используется для получения сведений об оборудовании и системе, управления процессами и их компонентами, а также изменения настроек с использованием возможностей инструментария управления Windows (Windows Management Instrumentation или WMI) .

Инструментарий управления Windows (WMI) – это набор программных средств, обеспечивающий управление системой с использованием сценариев, выполняемых в среде Windows Script Host ( или ранее — Windows Scripting Host ) или в командной строке с помощью утилиты WMIC.EXE. Windows Script Host или сокращенно WSH — это компонент Microsoft Windows, предназначенный для запуска сценариев на скриптовых языках JScript и VBScript. Сценарии WSH обычно используются в тех случаях, когда требуется выполнить набор каких-либо действий, требующих написания относительно сложного исходного кода, но нередко в повседневной практике администрирования, удобнее воспользоваться возможностями командной строки WMIC.

Технология WMI — это расширенная и адаптированная под Windows реализация стандарта Web-Based Enterprise Management ( WBEM ), принятого многими крупными компаниями в качестве универсального интерфейса мониторинга и управления различными системами и компонентами распределенной информационной среды предприятия с использованием объектно-ориентированных идеологий и протоколов HTML и XML. В основе структуры данных в WBEM лежит Common Information Model (CIM), реализующая объектно-ориентированный подход к представлению компонентов системы. Практически, WMI, основанный на CIM, является открытой унифицированной системой интерфейсов доступа к любым параметрам операционной системы, устройствам и приложениям, которые функционируют в ней.

Программные средства WMI устанавливаются по умолчанию и включают в себя следующие компоненты:

  • wmimgmt.msc – оснастка консоли MMC, позволяющая в целом управлять самой системой WMI на выбранном компьютере.
  • Winmgmt.exe – консольная утилита управления WMI. Выполняет аналогичные действия, что и консоль MMC wmimgmt.msc. Кроме того, является исполняемым файлом сервиса WMI в системе. Для запуска из консоли используется с опцией /exe (winmgmt.exe /exe).
  • Wbemtest.exe – графическая утилита для интерактивной работы с WMI. Удобна для тестирования классов и методов, просмотра свойств и т. п.
  • Wmic.exe – консольная утилита для вызова объектов и методов WMI (WMI Console) – присутствует только в Windows XP и более поздних версиях Windows.
  • mofcomp.exe – компилятор MOF-файлов. Служит для расширения репозитория WMI и тонких операций с библиотекой классов WMI, а также для обнаружения и исправления ошибок данных репозитория.

Основной каталог данных WMI при стандартной установке Windows — C:\Windows\System32\wbem.

Формат командной строки:

wmic [глобальные параметры] < команда >

Если параметры командной строки отсутствуют, то утилита wmic.exe переходит в интерактивный режим, с отображением приглашения к вводу команд:

wmic:root\cli > 

Подсказку по работе с утилитой wmic.exe можно получить по команде:

wmic /? — отобразить общую справку.

wmic /?:BRIEF — отобразить краткую справку.

wmic /?:FULL — отобразить полную стправку.

Содержание общей справки:

[глобальные параметры] <команда> 

Имеются следующие глобальные параметры: 
/NAMESPACE           Путь к пространству имен, с которым оперирует псевдоним. 
/ROLE                Путь к роли, содержащей определения псевдонимов. 
/NODE                Серверы, с которыми будет работать псевдоним. 
/IMPLEVEL            Уровень олицетворения для клиента 
/AUTHLEVEL           Уровень проверки подлинности для клиента. 
/LOCALE              Код языка, который должен использовать клиент. 
/PRIVILEGES          Включает или выключает все привилегии. 
/TRACE               Выводит отладочные данных в stderr. 
/RECORD              Записывает все вводимые команды и их выходные данные. 
/INTERACTIVE         Устанавливает или переустанавливает интерактивный режим. 
/FAILFAST            Устанавливает или переустанавливает режим FailFast. 
/USER                Имя пользователя для сеанса. 
/PASSWORD            Пароль для входа в сеанс. 
/OUTPUT              Задает режим перенаправления выходных данных. 
/APPEND              Задает режим перенаправления выходных данных. 
/AGGREGATE           Устанавливает или переустанавливает режим совместного вывода. 
/AUTHORITY           Задает <тип_полномочий> для подключения. 
/?[:< BRIEF|FULL >]    Сведения об использовании. 
 
Для получения дополнительных сведений о конкретном глобальном параметре введите: < имя_параметра > /? 
 
 
Для текущей роли доступны следующие псевдонимы: 
ALIAS                    - Доступ к псевдонимам, доступным на локальном компьютере 
BASEBOARD                - Управление системной платой. 
BIOS                     - Управление BIOS. 
BOOTCONFIG               - Управление конфигурацией загрузки. 
CDROM                    - Управление устройствами чтения компакт-дисков. 
COMPUTERSYSTEM           - Управление компьютером. 
CPU                      - Управление ЦП. 
CSPRODUCT                - Сведения о системе из SMBIOS.  
DATAFILE                 - Управление файлами данных.   
DCOMAPP                  - Управление приложениями DCOM. 
DESKTOP                  - Управление рабочим столом. 
DESKTOPMONITOR           - Управление системой мониторинга рабочего стола. 
DEVICEMEMORYADDRESS      - Управление адресами памяти устройства. 
DISKDRIVE                - Управление физическими дисками.  
DISKQUOTA                - Использование дискового пространства для томов NTFS. 
DMACHANNEL               - Управление каналами прямого доступа к памяти (DMA). 
ENVIRONMENT              - Управление настройками системной среды. 
FSDIR                    - Управление оглавлением файловой системы.  
GROUP                    - Управление учетными записями групп.  
IDECONTROLLER            - Управление IDE-контроллерами.   
IRQ                      - Управление линиями запросов прерывания.  
JOB                      - Доступ к заданиям, запланированным с помощью службы расписания.  
LOADORDER                - Управление системными службами, задающими зависимости при выполнении.  
LOGICALDISK              - Управление локальными запоминающими устройствами. 
LOGON                    - Сеансы входа в систему.   
MEMCACHE                 - Управление кэш-памятью. 
MEMORYCHIP               - Информация о микросхемах памяти. 
MEMPHYSICAL              - Управление физической памятью компьютерной системы.  
NETCLIENT                - Управление сетевыми клиентами. 
NETLOGIN                 - Управление данными входа в систему конкретных пользователей.  
NETPROTOCOL              - Управление протоколами (и их сетевыми характеристиками). 
NETUSE                   - Управление активными сетевыми соединениями. 
NIC                      - Управление адаптерами сетевого интерфейса. 
NICCONFIG                - Управление сетевыми адаптерами.  
NTDOMAIN                 - Управление доменами NT.   
NTEVENT                  - Записи в журнале событий NT.   
NTEVENTLOG               - Управление файлом журнала событий NT.  
ONBOARDDEVICE            - Управление основными встроенными адаптерами на системной плате. 
OS                       - Управление установленными операционными системами.  
PAGEFILE                 - Управления файлом подкачки виртуальной памяти.  
PAGEFILESET              - Управление параметрами файла подкачки.  
PARTITION                - Управление областями с разделами физического диска. 
PORT                     - Управление портами ввода-вывода. 
PORTCONNECTOR            - Управление физическими портами подключения. 
PRINTER                  - Управление печатающими устройствами.  
PRINTERCONFIG            - Управление конфигурацией печатающих устройств.   
PRINTJOB                 - Управление заданиями печати.  
PROCESS                  - Управление процессами.  
PRODUCT                  - Управление задачами пакета установки.  
QFE                      - Исправление QFE (Quick Fix Engineering).   
QUOTASETTING             - Настройка данных о дисковых квотах для тома.  
RDACCOUNT                - Управление разрешениями для подключений к удаленному рабочему столу. 
RDNIC                    - Управление подключением к удаленному рабочему столу на определенном сетевом адаптере. 
RDPERMISSIONS            - Разрешения для определенного подключения к удаленному рабочему столу. 
RDTOGGLE                 - Удаленное включение и отключение прослушивателя для удаленного рабочего стола. 
RECOVEROS                - Данные, которые будут собраны из памяти при сбое операционной системы.  
REGISTRY                 - Управление системным реестром компьютера. 
SCSICONTROLLER           - Управление SCSI-контроллерами.   
SERVER                   - Управление сведениями о сервере.  
SERVICE                  - Управление служебными приложениями.  
SHADOWCOPY               - Управление теневыми копиями. 
SHADOWSTORAGE            - Управление областью хранения теневых копий. 
SHARE                    - Управление общими ресурсами.  
SOFTWAREELEMENT          - Управление установленными в системе компонентами программного продукта. 
SOFTWAREFEATURE          - Управление подмножествами программных продуктов SoftwareElement.  
SOUNDDEV                 - Управление звуковым устройством. 
STARTUP                  - Управление командами, запускающимися автоматически при входе пользователей в систему. 
SYSACCOUNT               - Управление системной учетной записью.   
SYSDRIVER                - Управление системным драйвером базовой службы. 
SYSTEMENCLOSURE          - Управление физическим системным корпусом. 
SYSTEMSLOT               - Управление точками физических соединений, включая порты, гнезда и периферийные устройства, а также специальными точками соединения. 
TAPEDRIVE                - Управление ленточными накопителями.   
TEMPERATURE              - Управление датчиком температуры (электронным термометром). 
TIMEZONE                 - Управление данными о часовых поясах.  
UPS                      - Управление источниками бесперебойного питания (ИБП).  
USERACCOUNT              - Управление учетными записями пользователей. 
VOLTAGE                  - Управление данными датчика напряжения (электронного вольтметра). 
VOLUME                   - Управление локальными томами хранилища. 
VOLUMEQUOTASETTING       - Сопоставление дисковых квот конкретному тому.  
VOLUMEUSERQUOTA          - Управление квотами для индивидуальных томов хранилищ. 
WMISET                   - Управление параметрами работы службы WMI.  
 
Для получения дополнительных сведений о конкретном псевдониме введите: < псевдоним > /? 
 
CLASS     - переходит к полной схеме WMI. 
PATH      - переходит к полным путям к объектам WMI. 
CONTEXT   - выводит состояние всех глобальных параметров. 
QUIT/EXIT - выполняет выход из программы. 
 
Для получения дополнительных сведений о командах CLASS/PATH/CONTEXT введите: (CLASS | PATH | CONTEXT) /?

Краткая справка по содержанию практически ничем не отличается от справки по умолчанию, за исключением того, что часть текста заменена на многоточие, например:

VOLUMEUSERQUOTA — Управление квотами для индивидуальных томов хран…

Содержимое полной справки, получаемой по команде wmic /?:full:

[глобальные параметры] < команда > 
 
Имеются следующие глобальные параметры: 
 
NAMESPACE - Путь к пространству имен, по которому будет работать псевдоним. 
              Пространства имен всегда относительны, т.е. если пространство не 
            начинается с \\, то оно отсчитывается относительно текущего. 
Использование: 
 
/NAMESPACE:< пространство_имен > 
 
ROLE - Путь к роли, содержащей определения псевдонимов, предназначенных 
       для прикладного сеанса. 
Использование: 
 
/ROLE:< пространство имен > 
ЗАМЕЧАНИЕ. Роли по сути являются пространствами имен и работать с ними следует 
       соответственно, т.е. правильно указывать относительные пути 
       (по умолчанию используется пространство имен \\root\cli). 
 
NODE - задает серверы, с которыми будет работать псевдоним. 
Использование: 
 
/NODE:< список_идентификаторов_компьютеров > 
ПРИМЕЧАНИЕ. < список_идентификаторов_компьютеров > ::=  < @имя_файла | ид_комп > | <  имя_файла | ид_комп > < ,список_идентификаторов_компьютеров > 
 
IMPLEVEL - определяет уровень, на котором командная строка выполняет олицетворение. 
           По умолчанию используется Impersonate. 
Использование: 
 
/IMPLEVEL:< уровень_олицетворения >[/AUTHORITY:< тип_полномочий >] 
 
Существуют следующие уровни олицетворения: 
Impersonation Level 
------------------ 
Anonymous 
Identify 
Impersonate 
Delegate 
 
Примечание. Параметр /AUTHORITY используется для указания типа полномочий. 
 
AUTHLEVEL - задает уровень, на котором командная строка выполняет проверку подлинности. 
            По умолчанию используется Pktprivacy. 
Использование: 
 
/AUTHLEVEL:< уровень_проверки_подлинности > 
 
Существуют следующие уровни проверки подлинности: 
Authlevel 
--------- 
Default 
None 
Connect 
Call 
Pkt 
Pktintegrity 
Pktprivacy 
 
LOCALE - задает код языка, который должна использовать командная строка. 
Использование: 
 
/LOCALE:< код_языкового_стандарта > 
ПРИМЕЧАНИЕ. Параметр LOCALE имеет вид MS_XXX. 
      Значение XXX равно 409 для английского языка и 419 для русского. 
 
PRIVILEGES - включает или выключает все привилегии. 
Использование: 
 
/PRIVILEGES:< параметр > 
ПРИМЕЧАНИЕ. Разрешенными значениями параметра являются ENABLE и DISABLE. 
 
TRACE - Выбор режима копирования отладочных данных в поток stderr 
        в ходе обработки запросов. 
Использование: 
 
/TRACE:< параметр > 
ПРИМЕЧАНИЕ. Разрешенными значениями параметра являются ON и OFF. 
 
RECORD -- записывает все введенные команды и вывод WMIC в XML-файл. 
Использование: 
 
/RECORD:< путь к файлу > 
 
INTERACTIVE - устанавливает или переустанавливает интерактивный режим. 
Использование: 
 
/INTERACTIVE:< параметр > 
ПРИМЕЧАНИЕ. Разрешенными значениями параметра являются ON и OFF. 
 
FAILFAST - Устанавливает или переустанавливает режим FailFast. 
Использование: 
 
/FAILFAST:< параметр > 
ПРИМЕЧАНИЕ. Разрешенными значениями параметра являются ON и OFF. 
 
OUTPUT - задает режим перенаправления выходных данных. 
Использование: 
 
/OUTPUT:< спецификация вывода > 
ПРИМЕЧАНИЕ. < тип_вывода > ::= (STDOUT | CLIPBOARD | < имя_файла >) 
      STDOUT     - выходные данные перенаправляются в поток STDOUT. 
      CLIPBOARD  - выходные данные копируются в буфер обмена. 
      < имя_файла > - выходные данные записываются в указанный файл. 
 
APPEND - задает режим перенаправления выходных данных. 
Использование: 
 
/APPEND:< спецификация вывода > 
ПРИМЕЧАНИЕ. < тип_вывода > ::= (STDOUT | CLIPBOARD | < имя_файла >) 
      STDOUT     - выходные данные перенаправляются в поток STDOUT. 
      CLIPBOARD  - выходные данные копируются в буфер обмена. 
      < имя_файла > - выходные данные добавляются в указанный файл. 
 
USER - задает имя пользователя для сеанса. 
Использование: 
 
/USER:< userid > 
ПРИМЕЧАНИЕ. Имя указывается в формате < домен >\< пользователь >. 
 
AGGREGATE - задает режим вывода результатов. 
Использование: 
 
/AGGREGATE:<параметр>. 
Примечание. Разрешенными значениями параметра являются ON и OFF. 
 
PASSWORD --задает пароль для входа в сеанс. 
Использование: 
 
/PASSWORD:< пароль > 
 
AUTHORITY - задает < тип_полномочий > для подключения. 
Использование: 
 
/AUTHORITY:< тип_полномочий > 
 
/? - выводит описание и синтаксис справочных команд. 
Использование: 
 
/?:[< тип справки >] 
ПРИМЕЧАНИЕ. Разрешенными значениями для вида справки являются BRIEF (краткая) и FULL (полная). 
 
ПРИМЕЧАНИЕ. Если значение параметра содержит специальные символы, например '-' или '/', его следует заключить в двойные кавычки. 
 
 
Для текущей роли доступны следующие псевдонимы: 
ALIAS                    - Доступ к псевдонимам, доступным на локальном компьютере 
BASEBOARD                - Управление системной платой. 
BIOS                     - Управление BIOS. 
BOOTCONFIG               - Управление конфигурацией загрузки. 
CDROM                    - Управление устройствами чтения компакт-дисков. 
COMPUTERSYSTEM           - Управление компьютером. 
CPU                      - Управление ЦП. 
CSPRODUCT                - Сведения о системе из SMBIOS.  
DATAFILE                 - Управление файлами данных.   
DCOMAPP                  - Управление приложениями DCOM. 
DESKTOP                  - Управление рабочим столом. 
DESKTOPMONITOR           - Управление системой мониторинга рабочего стола. 
DEVICEMEMORYADDRESS      - Управление адресами памяти устройства. 
DISKDRIVE                - Управление физическими дисками.  
DISKQUOTA                - Использование дискового пространства для томов NTFS. 
DMACHANNEL               - Управление каналами прямого доступа к памяти (DMA). 
ENVIRONMENT              - Управление настройками системной среды. 
FSDIR                    - Управление оглавлением файловой системы.  
GROUP                    - Управление учетными записями групп.  
IDECONTROLLER            - Управление IDE-контроллерами.   
IRQ                      - Управление линиями запросов прерывания.  
JOB                      - Доступ к заданиям, запланированным с помощью службы расписания.  
LOADORDER                - Управление системными службами, задающими зависимости при выполнении.  
LOGICALDISK              - Управление локальными запоминающими устройствами. 
LOGON                    - Сеансы входа в систему.   
MEMCACHE                 - Управление кэш-памятью. 
MEMORYCHIP               - Информация о микросхемах памяти. 
MEMPHYSICAL              - Управление физической памятью компьютерной системы.  
NETCLIENT                - Управление сетевыми клиентами. 
NETLOGIN                 - Управление данными входа в систему конкретных пользователей.  
NETPROTOCOL              - Управление протоколами (и их сетевыми характеристиками). 
NETUSE                   - Управление активными сетевыми соединениями. 
NIC                      - Управление адаптерами сетевого интерфейса. 
NICCONFIG                - Управление сетевыми адаптерами.  
NTDOMAIN                 - Управление доменами NT.   
NTEVENT                  - Записи в журнале событий NT.   
NTEVENTLOG               - Управление файлом журнала событий NT.  
ONBOARDDEVICE            - Управление основными встроенными адаптерами на системной плате. 
OS                       - Управление установленными операционными системами.  
PAGEFILE                 - Управления файлом подкачки виртуальной памяти.  
PAGEFILESET              - Управление параметрами файла подкачки.  
PARTITION                - Управление областями с разделами физического диска. 
PORT                     - Управление портами ввода-вывода. 
PORTCONNECTOR            - Управление физическими портами подключения. 
PRINTER                  - Управление печатающими устройствами.  
PRINTERCONFIG            - Управление конфигурацией печатающих устройств.   
PRINTJOB                 - Управление заданиями печати.  
PROCESS                  - Управление процессами.  
PRODUCT                  - Управление задачами пакета установки.  
QFE                      - Исправление QFE Quick Fix Engineering.   
QUOTASETTING             - Настройка данных о дисковых квотах для тома.  
RDACCOUNT                - Управление разрешениями для подключений к удаленному рабочему столу. 
RDNIC                    - Управление подключением к удаленному рабочему столу на определенном сетевом адаптере. 
RDPERMISSIONS            - Разрешения для определенного подключения к удаленному рабочему столу. 
RDTOGGLE                 - Удаленное включение и отключение прослушивателя для удаленного рабочего стола. 
RECOVEROS                - Данные, которые будут собраны из памяти при сбое операционной системы.  
REGISTRY                 - Управление системным реестром компьютера. 
SCSICONTROLLER           - Управление SCSI-контроллерами.   
SERVER                   - Управление сведениями о сервере.  
SERVICE                  - Управление служебными приложениями.  
SHADOWCOPY               - Управление теневыми копиями. 
SHADOWSTORAGE            - Управление областью хранения теневых копий. 
SHARE                    - Управление общими ресурсами.  
SOFTWAREELEMENT          - Управление установленными в системе компонентами программного продукта. 
SOFTWAREFEATURE          - Управление подмножествами программных продуктов SoftwareElement.  
SOUNDDEV                 - Управление звуковым устройством. 
STARTUP                  - Управление командами, запускающимися автоматически при входе пользователей в систему. 
SYSACCOUNT               - Управление системной учетной записью.   
SYSDRIVER                - Управление системным драйвером базовой службы. 
SYSTEMENCLOSURE          - Управление физическим системным корпусом. 
SYSTEMSLOT               - Управление точками физических соединений, включая порты, гнезда и периферийные устройства, а также специальными точками соединения. 
TAPEDRIVE                - Управление ленточными накопителями.   
TEMPERATURE              - Управление датчиком температуры (электронным термометром). 
TIMEZONE                 - Управление данными о часовых поясах.  
UPS                      - Управление источниками бесперебойного питания (ИБП).  
USERACCOUNT              - Управление учетными записями пользователей. 
VOLTAGE                  - Управление данными датчика напряжения (электронного вольтметра). 
VOLUME                   - Управление локальными томами хранилища. 
VOLUMEQUOTASETTING       - Сопоставление дисковых квот конкретному тому.  
VOLUMEUSERQUOTA          - Управление квотами для индивидуальных томов хранилищ. 
WMISET                   - Управление параметрами работы службы WMI.  
 
Для получения дополнительных сведений о конкретном псевдониме введите: < псевдоним > /? 
 
CLASS     - переходит к полной схеме WMI. 
PATH      - переходит к полным путям к объектам WMI. 
CONTEXT   - выводит состояние всех глобальных параметров. 
QUIT/EXIT - выполняет выход из программы. 
 
Для получения дополнительных сведений о командах CLASS/PATH/CONTEXT введите: (CLASS | PATH | CONTEXT) /?

Используемые термины:

  • Класс (Class) – Класс – это определение объекта WMI. Например, класс процесс (process) определяет все характеристики любого процесса, но не ссылается на какой-либо конкретный процесс.
  • Объект (Object) – Иногда называется экземпляром класса (instance); Это конкретный набор данных WMI, определенное проявление класса.
  • Действие (Action) – Также называется методом (method). Действие – это доступная для выполнения функция класса или объекта WMI, некоторая операция, которую мы можете заставить выполнить класс или объект. Например, завершение процесса объектом Process с использованием метода delete, как это рассматривается ниже.
  • Свойства — параметры объекта.
  • Путь объекта — путь WMI для использования при обращении к экземпляру или классу.
  • Псевдоним — определение классов WMI, применяемое в WMIC. Псевдонимы упрощают обращение к классам и свойствам. Они также предоставляют действия, облегчающие работу с классами. Псевдонимы могут включать средства для работы с классами на удаленном компьютере, а также на нескольких компьютерах.

Утилита WMIC создана для удобства применения WMI непосредственно из командной строки, поэтому наиболее используемые классы WMI доступны под заранее определенными псевдонимами (ALIAS). Также, имеется возможность самостоятельного определения псевдонимов для тех классов, для которых это еще не сделано, или добавить новые псевдонимы для тех классов WMI, которые уже их имеют.

Утилита WMIC предоставляет три основных параметра для управления отображением данных:

  • /OUTPUT – вывод во внешний файл.
  • /FORMAT – позволяет форматировать информацию.
  • /TRANSLATE – настройка вывода специальных символов.

Кроме вывода в файл, возможен вывод в буфер обмена, если задан параметр /OUTPUT:CLIPBOARD. В качестве дополнительного средства протоколирования вместо параметра /OUTPUT можно использовать параметр /RECORD:< имя файла >. Для отмены протоколирования в интерактивном режиме используется параметр /RECORD:””

Форматы выводимых данных:

  • CSV – вывод данных в одну строку, с разделителем в виде запятой.
  • HFORM – информация отображается в виде списка, оформленного в HTML-формате. Отображается две колонки — название объекта и его значение.
  • HTABLE – формат вывода данных в виде HTML таблицы.
  • LIST – вывод свойства и его значения происходит в отдельной строке.
  • MOF – собственно, информация преобразуется в формат MOF.
  • RAWXML – вывод данных в XML файл.
  • TABLE – табличный формат вывода данных.
  • VALUE – аналогично значению LIST.
  • XML – вывода данных в XML файл, но с дополнительной информацией.

Параметр /TRANSLATE используется совместно с оператором GET в тех случаях, когда есть необходимость вывода символов, стандартно используемых для форматирования текста или разделения полей. В среде WMIC поддерживаются таблицы BasicXml и NoComma

Необходимо учитывать тот факт, что формат вывода данных и их вид будет зависеть от порядка следования параметров /TRANSLATE и /FORMAT:

  • Если /TRANSLATE следует раньше чем /FORMAT, то сначала выполняется преобразование, а затем форматирование выводимых данных.
  • Если /FORMAT идет раньше /TRANSLATE, то сначала выполняется форматирование, а затем – преобразование.

Leave A Comment?