Windows Management Instrumentation (WMI) — это базовая технология как для управления так и для слежения за работой платформы Windows.
Только пользователи локальной группы «Администраторы» имеют право запускать WMIC.
В основе структуры данных в WBEM лежит Common Information Model (CIM), реализующая объектно-ориентированный подход к представлению компонентов системы. CIM является расширяемой моделью, что позволяет программам, системам и драйверам добавлять в неё свои классы, объекты, методы и свойства.
Важной особенностью WMI является то, что хранящиеся в нём объекты соответствуют динамическим ресурсам, то есть параметры этих ресурсов постоянно меняются, поэтому параметры таких объектов не хранятся постоянно, а создаются по запросу потребителя данных. Хранилище свойств объектов WMI называется репозиторием и расположено в системной папке операционной системы Windows:
% SystemRoot % Windows System32 wbem Repository
Так как WMI построен по объектно-ориентированному принципу, то все данные операционной системы представлены в виде объектов и их свойств и методов.
Бесплатное удаленное управление компьютером средствами Windows
Все классы группируются в пространства имен, которые иерархически упорядочены и логически связаны друг с другом по определенной технологии или области управления. В WMI имеется одно корневое пространство имен Root, которое в свою очередь имеет 4 подпространства: CIMv2, Default, Security и WMI.
Классы имеют свойства и методы и находятся в иерархической зависимости друг от друга, то есть классы-потомки могут наследовать или переопределять свойства классов-родителей, а также добавлять свои свойства.
Свойства классов используются для однозначной идентификации экземпляра класса и для описания состояния используемого ресурса. Обычно все свойства классов доступны только для чтения, хотя некоторые из них можно модифицировать определенным методом. Методы классов позволяют выполнить действия над управляемым ресурсом.
Каждому экземпляру класса можно обратиться по полному пути, который имеет следующую структуру:
[\ComputerNameNameSpace][:ClassName][.KeyProperty1=Value1][,KeyProperty2=Value2]…]
ComputerName – имя компьютера
NameSpace – название пространства имен
ClassName – имя класса
KeyProperty1=Value1, KeyProperty2=Value2 – свойства объекта и значения, по
которому он идентифицируется.
Пример обращения к процессу с именем «Calc.exe», который запущен на локальной машине:
\.CIMv2:Win32_Process.Name=»Calc.exe»
Экземпляры классов могут генерировать события, к которым можно подписываться. При наступлении события WMI автоматически создает экземпляр того класса, которому соответствует это событие. Такой механизм удобно использовать для выполнения определенной команды при наступлении определенного события, то есть следить за состоянием объектов операционной системы.
Общая безопасность в WMI реализуется на уровне операционной системы, а дополнительная политика безопасности основана на уровнях пространств имен и протокола DCOM. То есть если пользователь не имеет права делать какое-то действие через операционную систему, он не сможет это сделать и через WMI . Если же пользователю дано какое-то право в операционной системе, то это ещё не означает, что это право будет и в WMI, так как в WMI действуют дополнительные параметры безопасности на уровне пространств имен.
Установка и удаление программ групповыми политиками Windows Server 2016
Для вызова удаленных процедур WMI использует модель DCOM. В случае если возникает ошибка «Dcom Access Denied» то действия будут следующими: меня «Выполнить»->»dcomcnfg»->»Службы компонентов(Component Services)->Компьютеры->Мой компьютер->Свойства(правая кнопка мыши)->вкладка Безопасность COM Уровни олицетворения могут принимать следующие значения:
Anonymous | Анонимный | WMI-объект не может получить информацию о пользователе — доступ по такому типу не предоставляется |
Identify | Идентификация | WMI-объект запрашивает маркер доступа пользователя — доступ предоставляется только локально |
Impersonate | Олицетворение | WMI-объект имеет такие же права, какие имеет пользователь — рекомендуемый уровень для выполнения команд на удаленном компьютере |
Delegate | Делегирование | WMI-объект может обратиться от имени пользователя к другому WMI-объекту — нерекомендуемый уровень, так как команды можно выполнять удаленно через цепочку из нескольких компьютеров |
Уровни аутентификации (подлинности) могут принимать следующие значения:
None | Отсутствует | Проверка подлинности отсутствует |
Default | По умолчанию | Стандартные настройки безопасности, которые задаются компьютером-целью команды |
Connect | Подключение | Проверка только во время подключения к компьютеру-цели команды, проверка в ходе работы отсутствует |
Call | Вызов | Проверка подлинности при каждом запросе к компьютеру-цели команды, заголовки пакетов подписываются, но содержимое не шифруется |
Pkt | Пакет | Проверка подлинности всех пакетов к компьютеру-цели команды, заголовки пакетов подписываются, но содержимое не шифруется |
PktIntegrity | Целостность пакета | Проверка подлинности и целостности всех пакетов к компьютеру-цели команды, заголовки пакетов подписываются, но содержимое не шифруется |
PktPrivacy | Секретность пакета | Проверка подлинности и целостности всех пакетов к компьютеру-цели команды, заголовки и содержимое пакетов подписываются и шифруются |
wmimgmt.msc — оснастка консоли управления MMC для настройки WMI на локальном компьютере.
winmgmt.exe — консольная утилита управления WMI локального компьютера.
wbemtest.exe — графическая утилита для взаимодействия со структурой WMI на локальном или удаленном компьютере.
wmic.exe — консольная утилита для взаимодействия со структурой WMI на локальном компьютере.
mofcomp.exe — компилятор MOF-файлов для расширения структуры WMI, управления библиотекой классов WMI и восстановления репозитория.
Сейчас я покажу практические примеры используемые в моей повседневной работе:
Удаление больших файлов с расширением .log
wmic datafile where «drive=’с:’ and Extension=’.log’ and FileSize>’100000′» call delete
Список заблокированный учетных записей(вывод в файл на диске с:)
Wmic /output:»c:useraccount.html» useraccount where (Status=’Degraded’) list full /format:htable
Определение архитектуры (Как пример на Server 2008)
Определяет тип сервера (Server 2008)
Команда возвращает числовое значение. Для Windows 2008 Server они следующие:
7 = Windows Server 2008 Standard Edition (full installation)
8 = Windows Server 2008 Datacenter Edition (full installation
10 = Windows Server 2008 Enterprise Edition (full installation)
12 = Windows Server 2008 Datacenter Edition (core installation)
13 = Windows Server 2008 Standard Edition (core installation)
14 = Windows Server 2008 Enterprise Edition (core installation)
42 = Hyper-V Server 2008
wmic OS get OperatingSystemSKU
Как подключаться удаленным системам.
Завершить процесс по названию.
wmic.exe process where name=»calc.exe» delete
Wmic process where (caption=”notepad.exe”) call terminate
Получить более подробную справку по запуску команд.
Если необходимо получить сведения о службе оповещения на компьютере
Вывод сведений на экран
process where (name=»explorer.exe») get caption,commandline,handle
Чтобы представить вывод в файл в табличном режиме
/output:c:table.htm process get /format:htable
path win32_process.name=»explorer.exe» get caption,commandline,handle
При соединении с удалёнными системами можно брать имена компьютеров из текстового файла (server1,server2,server3)
Сохранение во внешнем XML-файле историю запускаемых в текущей сессии wmic-команд и результаты их выполнения.
Чтобы запустить новый процесс
process call create cmd.exe
Подключение к другому компьютеру возможно ещё так
/node:server /user:test /password:»password»
Чтобы перезагрузить компьютер
/node:user os where (csname=»user») call win32shutdown 2
Чтобы выключить компьютер
/node:user os where (csname=»user) call win32shutdown 1
Вывод свойств операционной системы
Вывод информация о состоянии всех зарегистрированных служб на компьютерах server1, server2, server3
/node:server1,server2,server3 /output:c:service.htm service get name,displayname,state /format:htable
Запуск и остановка служб
/node:server1 service where (name=»squid.exe») call startservice
Принудительно выключить компьютер
wmic os where primary=»TRUE» call win32shutdown 6
\FORD-POLLROOTCIMV2:Win32_OperatingSystem.Name=»Microsoft Windows XP Professional|C:\WINDOWS|\Device\Harddisk0\Partition1″
Для того чтобы запустить сервис надо (вывести список сервисов в системе)
service list brief
service where (name=»») call startservice || stopservice
/output:c:service.html service list full /format:htable
Чтобы работало wmic, надо
Служба WMI должна быть помещена в автозапуск, а также должно быть разрешено соединение по DCOM:
1) В разделе реестра HKLMSOFTWAREMICROSOFTOLE установите значение EnableDCOM в «Y», а также EnableRemoteConnect в «Y». Значение EnableRemoteConnect по умолчанию «N».
2) В разделе реестра HKLMSOFTWAREMicrosoftwbemcimom установите значение AutostartWin9X в «2». Установите значение EnableAnonConnections в «1».
3) Добавьте файл Winmgmt.exe в автозагрузку. Файл находится в каталоге WindowsWBEM.
netsh firewall add portopening TCP 135 DCOM_TCP135
Удаленно включаем службу удаленный рабочий стол (Remote Desktop)
Вывод служб которые запускают с правами LocalSystem
/output:c:idcns.html service where startname=»LocalSystem» get Caption,name,started
Список шар на локальном машине
wmic share get caption,name,path
Перечисление всех путей к папкам из которых запущены программы
wmic.exe process get «ExecutablePath», «ProcessID»
Драйверы в системе возможно останавливать или запускать например:
wmic sysdriver where name=’beep’ call PauseService
методы класса Win32_SystemDriver
StartService -> запускает службу или драйвер
StopService -> останавливает службу или драйвер
PauseService -> переводит службу или драйвер в состояние паузы
ResumeService -> восстанавливает состояние драйвера или службы
InterrogateService -> заставляет службу или драйвер обновить своё состояние в SCM
UserControlService -> позволяет послать службе или драйверу пользовательское сообщение.
Create -> создаёт новую службу или драйвер
Change -> изменяет службы или драйвер
ChangeStartMode -> изменяет режим запуска службы или драйвера
Delete -> удаляет службу или драйвер
Выключаем локальную машину.
ping -n seconds 127.0.0.1>nul Win32Shutdown 6 — 6 = 2 (reboot) + 4 (force). Никакого видимого сообщения о перезагрузке выведено не будет.
Полезные информационные сборки параметров.
wmic computersystem get domain, EnableDaylightSavingsTime, Manufacturer, Model, PartOfDomain, TotalPhysicalMemory, username
wmic bios get Caption, Manufacturer, SMBIOSBIOSVersion, Version
wmic baseboard get Manufacturer, Model, Product, SerialNumber, Version
wmic cpu get deviceID, Addresswidth, MaxClockSpeed, Name, Manufacturer, ProcessorID
wmic logicaldisk where drivetype=3 get name, freespace, systemname, filesystem, size, volumeserialnumber
= 1 NoRootDirectory The drive does not have a root directory.
= 2 Removable The drive is a removable storage device, such as a floppy disk drive or a USB flash drive.
= 3 Fixed The drive is a fixed disk.
= 4 Network The drive is a network drive.
= 5 CDRom The drive is an optical disc device, such as a CD or DVD-ROM.
= 6 Ram The drive is a RAM disk.
Задание приоритета процессору
wmic process where «name=’notepad.exe’» call setpriority 64
Выполнение команд через wmic
просто вставляем в командную строку
wmic process call create ‘cmd.exe /c ping 10.30.10.101’
Прописываем DNS-суффиксы удаленно
wmic /node: /failfast:on nicconfig call SetDNSSuffixSearchOrder (ford-i.ru,tc-toyota.local,lexus.local)
Прописываем DNS-сервера
nicconfig where index=8 call setdnsserversearchorder («10.30.5.2″,»10.30.5.3»)
,где index= указывает номер интерфейса в системе на котором у вас поднята сеть
Команды загружаемые при входе системы
wmic startup list full system
wmic:rootcli>/output:c:startup_full.html startup list full /format:htable
wmic:rootcli>/output:c:startup_system.html startup list system /format:htable
От ekzorchik
Всем хорошего дня, меня зовут Александр. Я под ником — ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог — это шпаргалка онлайн.
Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору.
Источник: www.ekzorchik.ru
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 команду .
/ПРОСТРАНСТВА ИМЕН
Пространство имен, обычно используемое псевдонимом. Значение по умолчанию — rootcimv2 .
/ROLE
Пространство имен, в которое WMIC обычно ищет псевдонимы и другие сведения О WMIC.
/УЗЛА
Имена компьютеров, разделенные запятыми. Все команды синхронно выполняются на всех компьютерах, перечисленных в этом значении. Имена файлов должны иметь префикс https://learn.microsoft.com/ru-ru/windows/win32/wmisdk/wmic» target=»_blank»]learn.microsoft.com[/mask_link]
Доступ к 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:rootcli>.
После этого можно вводить с клавиатуры команды WMIC (регистр символов значения не имеет), которые запускаются после нажатия клавиши . Например, если набрать в командной строке WMIC слово PROCESS и нажать , то на экран выведется список всех процессов, запущенных в данный момент в системе:
wmic:rootcli>PROCESS Caption CommandLine System Idle Process System smss.exe SystemRootSystem32smss.exe csrss.exe C:WINDOWS.1system32csrss.exe ObjectDirectory=.. . . services.exe C:WINDOWS.1system32services.exe lsass.exe C:WINDOWS.1system32lsass.exe svchost.exe C:WINDOWS.1system32svchost -k DcomLaunch svchost.exe C:WINDOWS.1system32svchost -k rpcss svchost.exe C:WINDOWS.1System32svchost.exe -k netsvcs . . .
Если же ввести в командной строке WMIC слово OS , то мы увидим на экране свойства операционной системы, установленной на компьютере:
wmic:rootcli>OS BootDevice BuildNumber BuildType Caption DeviceHarddiskVolume1 2600 Uniprocessor Free Microsoft Windows . . .
Естественно, это лишь самые простые примеры использования командной строки WMIC. Для того чтобы узнать о дополнительных возможностях WMIC, можно воспользоваться встроенной помощью, которая вызывается с помощью ключей / ? или — ?. Например, набрав один из этих ключей после слова PROCESS и нажав клавишу , мы выведем справку, из которой, скажем, видно, что команда OS CALL позволяет выполнять некоторые действия над процессами:
wmic:rootcli>OS -? OS — Управление установленными операционными системами. СОВЕТ. BNF при работе с псевдонимом. ( [WMI-объект] | [] | [] . . . Использование: OS ASSOC [] OS CALL [] OS CREATE OS DELETE OS GET [] [] OS LIST [] [] OS SET []
Выполнив теперь команду PROCESS CALL / ?, мы получим краткое описание методов, которые могут быть вызваны при работе с процессами:
wmic:rootcli>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:rootcli>PROCESS CALL /?:FULL Вызов методов. Использование: CALL [] ЗАМЕЧАНИЕ. ::= | ,
Ключи / ? и — ? можно ввести и сразу после приглашения WMIC. В этом случае будет выведена общая информация о глобальных ключах, доступных псевдонимах и командах WMIC.
Пакетный режим работы, как отмечалось ранее, подразумевает запуск команд WMIC непосредственно из командной строки Windows или из пакетного файла. Для этого перед нужной командой пишется слово WMIC. При выполнении такой конструкции запускается WMIC, выполняется требуемая команда, после чего управление вновь передается командной строке Windows.
Например, для того чтобы вывести в пакетном режиме на экран свойства операционной системы, нужно в командной строке Windows выполнить команду WMIC OS.
Источник: intuit.ru