Восстановление WMI - ошибка 0x8007050a

Для начала можно рассмотреть варианты ошибки 0x8007050a, а именно где она появляется.

При попытке установить платформу .Net Framework, вылазиет ошибка HRESULT: 0x8007050a:

При попытке запуска самой службы появляется ошибка 1290: 0x50a:

При переходе на вкладку Дополнительно в свойствах сетевого адаптера, выдается ошибка WMI с сообщением:

Windows не удается вывести свойства этого подключения.
Возможно данные инструментария управления Windows (WMI) повреждены.

С свойствах любой службы при переходе на вкладку Зависимости

При запуске команды get-wmiobject Win32_OperatingSystem через Powershell:

Get-WmiObject : Исключение из HRESULT: 0x8007050a
At line:1 char:14
+ get-wmiobject <<<< Win32_OperatingSystem
       + CategoryInfo       :  InvalidOperation: <:> [Get-Winobject], COMException
+ FullyQualifiedErrorID : GetWMICOMException,Microsoft.PowerShell.Commands
.GetWmiObjectCommand

При исполнении команды wmic gfe list brief /format:table

При запуске Службы компонентов dcomcnfg.exe

При выполнении некоторых скриптов

При вводе команды gpresult /z

При попытке убить процесс DCOM

При попытке запустить службу SharedAccess (ICS)

При выборе пункта Управляющий элемент WMI в оснастке Управление компьютером

В окне Свойства: Управляющий элемент WMI

Вкладка Зависимости в свойствах всех служб

 

Выполните команды:

regsvr32 /i wbemupgd.dll

regsvr32 /i userenv.dll

Приступим к лечению:

  • Проверьте наличие файла $WinMgmt.CFG и папки FS введя команду %windir%\System32\wbem\Repository
    Если отсутствует, то скопируйте с рабочей машины и вставьте.
  • Убедитесь, что в папке System32 отсутствуют копии файлов из папки %windir%\System32\wbem\
    Лишние копии файлов dll в System32 стоит удалить.
  • Выполните батник следующего содержания:

    RUNDLL32.EXE C:\WINDOWS\SYSTEM32\WBEM\WMISVC.DLL,MoveToShared
    pause
    RUNDLL32.EXE C:\WINDOWS\SYSTEM32\WBEM\WMISVC.DLL,MoveToAlone
    pause
    sc config WSCSVC start= auto
    pause
    sc config SHAREDACCESS start= auto
    pause
    SC.EXE CONFIG WINMGMT START= AUTO
    RUNDLL32.EXE C:\WINDOWS\SYSTEM32\WBEM\WMISVC.DLL,MoveToShared
    pause
    RUNDLL32.EXE C:\WINDOWS\SYSTEM32\WBEM\WMISVC.DLL,MoveToAlone
    pause
    NET.EXE STOP WINMGMT
    pause
    MOVE C:\WINDOWS\SYSTEM32\WBEM\Repository\FS\*.* %TEMP%
    pause
    NET.EXE START WINMGMT
    pause
    WINMGMT.EXE /CLEARADAP
    pause
    WINMGMT.EXE /RESYNCPERF
    pause

  • Выполните перезапуск службы:

net stop winmgmt

cd %windir%\system32\wbem

winmgmt /kill

winmgmt /unregserver

winmgmt /regserver

winmgmt /resyncperf

wmiprvse /regserverpause

Winmgmt /salvagerepository

Winmgmt /resetrepository

sc config winmgmt start= auto

net start winmgmt

  • Запустите Управление компьютером-Службы и попробуйте в свойствах службы перейти на вкладку Зависимости

Введите команду regsvr32 /i userenv.dll

Если есть возврат кода, то сделайте твик и добавьте запись в реестр

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OleAut]
"DisableShield"=dword:00000001

После перезагрузки компьютера может в Зависимости выскочить ошибка:
WMI: Недопустимое пространство имен. Пространство имен 'root\cimv2' не определено в базе данных WMI.

Это уже лучше, выполните первый батник с командами и дополнительно создайте второй со следующим содержанием:

sc config winmgmt start= disabled

net stop winmgmt

cd %windir%\system32\wbem

winmgmt /kill

winmgmt /unregserver

winmgmt /resyncperf

wmiprvse /regserverpause

rundll32 wbemupgd, RepairWMISetup

rundll32 wbemupgd, UpgradeRepository

cd %windir%\system32\wbem

winmgmt /salvagerepository

winmgmt /resetrepository

regsvr32 /s %systemroot%\system32\scecli.dll

regsvr32 /s %systemroot%\system32\userenv.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

winmgmt /regserver

sc config winmgmt start= auto

net start winmgmt

После перезагрузки системы можно попробовать команду regsvr32 /i userenv.dll

Иногда нужно заменить этот файл, взять с резервной копии.

После этого вам нужно будет сделать сброс Групповой политики командой:

  • Для Win XP

secedit /configure /cfg %windir%\repair\secsetup.inf /db secsetup.sdb /verbose

  • Для Win 7

secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose

 

Введите команду %windir%\SYSTEM32\wmimgmt.msc и вызовите, в окне через строчку Элемент управления WMI, Свойства. Перейдите на вкладку Ведение журнала.

Можно поставить ведение журнала подробно.

WMI ведение журнала

Дальше стоит сохранить данные в архив:

WMI архивация

Еще никому не удавалось вернуть к жизни винду при такой ошибке, мне это удалось, чего и вам желаю.

Категория: Службы и консоли | Добавил: masterov (28.10.2017) | Автор: Андрей Мастеров E W
Просмотров: 40 | Рейтинг: 0.0/0
Другие материалы по теме:
Всего комментариев: 0
avatar