29.10.2021

Ремонт WMI

  • Эта тема пуста.
Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Автор
    Сообщения
  • #960
    Аноним
    Неактивированный

    Ремонт WMI
    Уверен что каждый хоть раз сталкивался с проблемами с WMI.
    • Не устанавливается SCCM или SCOM агент.
    • Не работает сторонее ПО по инвентаризации.
    • Ошибки в системных журналах связанные с источником WMI.
    • При запуске собственного скрипта и пр.
    Для начала небольшая теоретическая часть посвященная архитектуре WMI.
    Не удивляйтесь имеет собственную архитектуру, которая включает в себя три основных компонента:
    Провайдеры WMI и управляемые объекты.
    Провайдеры WMI, предоставляются COM-объектами и контролируют другие объекты — логические или физические жесткие диски, операционную систему и проч.
    Инфраструктура WMI.
    Кключает в себя службу WMI (winmgmt.exe) и репозиторий WMI, организованный по двум пространствам имен, таким как rootdefault или rootcimv2. Эта служба является посредником между провайдерами WMI и репозиторием WMI. Большая часть данных получается по запросу клиента, динамичаски.
    Подписчики WMI (клиенты).
    Чаще всего это сценарий или приложение запрашивающее системную информацию, например Microsoft System Center Configuration Manager или его собрат SCOM.
    Практика
    Чаще всего проблемы возникают в инфраструктуре WMI, если точнее то при обращении к пространству имен и пр. Однозначно назвать причины затрудняюсь но методами лечения охотно поделюсь.
    Лечение.
    В большинстве случаев “лечение” ошибок, методика действительна для Windows XP, выполняется тремя методами:
    1. Остановка службы и удаление папки Repository
    2. Более правильный и более гуманный метод представленный ниже.
    3. Если первые два метода не помогли то приходится прибегнуть к утилите WMIDIAG.
    Шаг первый – восстановление wmi:
    Если у вас Windowx XP SP2 то вводим команду
    rundll32 wbemupgd, UpgradeRepository
    и проверяем результат в файле журнала %windir%/system32/wbem/logs/setup.log
    Rundll32 wbemupgd, CheckWMISetup
    Rundll32 wbemupgd, RepairWMISetup
    Шаг второй – Регистрация компонент:
    cd /d %windir%/system32/wbem
    for %i in (*.dll) do RegSvr32 -s %i
    for %i in (*.exe) do %i /RegServer
    Шаг третий – синхронизация WMI-счетчиков производительности:
    winmgmt /clearadap
    winmgmt /resyncperf
    Финальный шаг – перекомпиляция mof-файлов:
    cd /d %windir%/system32/wbem
    for /r %i in (*.mof *.mfl) do mofcomp %i
    Скажу сразу что автоматизация данного процесса доступна в виде скрипта, но использовать ее стоит только после полной уверенности что без этого не обойтись.
    Копируем представленный ниже скрипт и запускаем его через psexec на удаленном ПК.
    @echo off
    cd /d %windir%/system32/wbem
    net stop winmgmt /y
    winmgmt /kill
    winmgmt /unregserver
    winmgmt /regserver
    winmgmt /resyncperf
    if exist Rep_bak rd Rep_bak /s /q
    rename Repository Rep_bak
    for %i in (*.dll) do RegSvr32 -s %i
    for %i in (*.mof,*.mfl) do Mofcomp %i
    net start winmgmt
    Более “жестокий вариант”.
    %windir%system32wbemwinmgmt /clearadap
    %windir%system32wbemwinmgmt /kill
    %windir%system32wbemwinmgmt /unregserver
    %windir%system32wbemwinmgmt /reserver
    %windir%system32wbemwinmgmt /resyncperf
    net stop winmgmt /y
    if exist %windir%system32wbemrepository.old rmdir /s /q
    %windir%system32wbemrepository.old
    rename %windir%system32wbemrepository
    %windir%system32wbemrepository.old
    regsvr32 /s %systemroot%system32scecli.dll
    regsvr32 /s %systemroot%system32userenv.dll
    mofcomp %windir%system32wbemcimwin32.mof
    mofcomp %windir%system32wbemcimwin32.mfl
    mofcomp %windir%system32wbemrsop.mof
    mofcomp %windir%system32wbemrsop.mfl
    for /f %s in (‘dir /b /s %windir%system32wbem*.dll’) do regsvr32 /s %s
    for /f %s in (‘dir /b /s %windir%system32wbem*.mof’) do mofcomp %s
    for /f %s in (‘dir /b %windir%system32wbem*.mfl’) do mofcomp %s
    net start winmgmt
    %windir%system32wbemwmiprvse /regserver

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Для ответа в этой теме необходимо авторизоваться.