Неправильное пространство имен windows 10

Любой бывалый Windows-админ периодически сталкивается с проблемами в работе службы WMI (Windows Management Instrumentation) и ее компонентах. Наличие проблем в подсистеме WMI является критичным с точки зрения нормального функционирования Windows, поэтому администратору необходимо проверить и восстановить работоспособность WMI. В этой статье мы опишем простую методику диагностирования и устранения неполадок службы WMI в Windows.

О наличии проблем с WMI может свидетельствовать широкий спектр ошибок:

  • Ошибки обработки WMI запросов в системных журналах и логах приложений (
    0x80041002 - WBEM_E_NOT_FOUND
    ,
    WMI: Not Found
    ,
    0x80041010 WBEM_E_INVALID_CLASS
    );
  • Ошибки обработки GPO, связанные на WMI ( некорректная работа wmi фильтров групповых политик, и пр.);
  • WMI запросы выполняются очень медленно;
  • Ошибки при установке или работе агентов SCCM/SCOM;
  • Ошибки в работе скриптов (vbs или PowerShell), использующих пространство имен WMI (скрипты с Get-WmiObject и т.д.).

Содержание:

  • Диагностика проблем с WMI
  • Исправление WMI репозитория, перерегистрация библиотек, перекомпиляция MOF файлов
  • Сброс и пересоздание WMI репозитория (хранилища)

Диагностика проблем с WMI

В первую очередь нужно проверить служба Windows Management Instrumentation (Winmgmt) установлена в Windows и запущена. Вы можете проверить состояние службы в консоли services.msc или с помощью PowerShell:

Get-Service Winmgmt | Select DisplayName,Status,ServiceName

служба Windows Management Instrumentation (Winmgmt) работает

Если служба Winmgmt запущена, вы можете проверить работоспособность WMI, обратившись к ней с помощью простого WMI-запроса. Вы можете выполнить wmi запрос из командной строки или из PowerShell. Например, следующая команда выведет список установленных в Windows программ:

wmic product get name,version

Простейшая PowerShell команда для получения информации о версии и билда Windows 10 через WMI может выглядеть так:

get-wmiobject Win32_OperatingSystem

powershell проверка работы wmi командой get-wmiobject

Как вы видите, служба WMI ответила на запрос корректно. Если при выполнении такого WMI-запроса Windows возвращает ошибку, скорее всего сервиса WMI работает некорректно, поврежден WMI репозиторий или есть какие-то другие проблемы.

ошибка Failed to initialize all required WMI classes

В моем случае, например, при открытии свойств WMI Control в консоли управления компьютером (compmgmt.msc) появлялась надпись:

Failed to initialize all required WMI classes
Win32_Processor. WMI: Invalid namespace
Win32_WMISetting. WMI: Invalid namespace
Win32_OperationSystem. WMI: Invalid namespace

Ранее для диагностики WMI существовала официальная утилита от Microsoft – WMIDiag.vbs (Microsoft WMI Diagnosis). WMIdiag это vbs скрипт, который проверяет различные подсистемы WMI и записывает собранную информацию в лог файлы (по умолчанию логи находятся в каталоге %TEMP% — C:\USERS\%USERNAME%\APPDATA\LOCAL\TEMP\). Получившийся отчет состоит из файлов, имена которых начинаются с WMIDIAG-V2.2 и включает в себя следующие типы фалов:

  • .log файлы содержат подробный отчет об активности и работе утилиты WMIDiag;
  • .txt файлы содержат итоговые отчеты о найденных ошибках, на которые стоит обратить внимание;
  • В .csv файлах содержится информация, нужная для долгосрочного анализа работы подсистемы WMI.

скрипт для исправления ошибок WMI WMIDiag.vbs

Совет. В 64 битных версиях Windows wmidiag нужно запускать так:

c:\windows\System32\cscript.exe wmidiag.vbs

в противном случае появится ошибка:

WMIDiag must be run from native 64-bit environment. It is not supported in Wow64.

WMIDiag It is not supported in Wow64

После окончания работы утилиты 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 с помощью команды:

winmgmt /verifyrepository

winmgmt-verifyrepository - проверка состояния репозитория wmi

Если команда возвращает, что база данных WMI находится в неконсистентном состоянии (INCONSISTENT или WMI repository verification failed), стоит попробовать выполнить “мягкое” исправление ошибок репозитория:

Winmgmt /salvagerepository

WMI repository has been salvaged.

Данная команда выполняет проверку согласованности хранилища WMI и при обнаружении несогласованности перестраивает базу данных WMI.

Перезапустите службу WMI:

net stop Winmgmt
net start Winmgmt

Если стандартный способ исправления ошибок в WMI не помог, попробуйте следующий скрипт. Данный скрипт представляет собой ”мягкий” вариант восстановления службы WMI на компьютере (выполняется перерегистрация dll библиотек и службы WMI, перекомпилируются mof файлы). Данная процедура является безопасной и ее выполнение не должно привести к каким-либо новым проблемам с системой.

sc config winmgmt start= disabled
net stop winmgmt
cd %windir%\system32\wbem
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

На 64 битной версии Windows эти действия нужно также выполнить для каталога SysWOW64. Замените третью строку на

cd %windir%\SysWOW64\wbem

bat скрипт для перерегистрации компонентов wmi

Указанные команды можно выполнить путем простой вставки в окно командой строки, либо сохранить код в bat файле wmi_soft_repair.bat и запустить его с правами администратора. После окончания работы скрипта, перезагрузите Windows и проверьте работу WMI.

Сброс и пересоздание WMI репозитория (хранилища)

Если вам не помогли мягкие способ восстановления WMI, рассмотренные выше, придется перейти к более “жесткому” способу восстановления работоспособности службы WMI, заключающегося в пересоздании хранилищаWMI.

WMI репозиторий (хранилище) находится в каталоге
%windir%\System32\Wbem\Repository
и представляет собой базу данных, в которой содержится информация о метаданных и определениях WMI классов. В некоторых случаях WMI репозиторий может содержать статическую информацию классов. При повреждении репозитория WMI, в работе службы Windows Management Instrumentation (Winmgmt) могут наблюдаться ошибки вплоть до полной невозможности ее запустить.

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

Следующая команда выполнит сброс базы данных WMI к исходному состоянию (как после чистой установки Windows). Используйте эту команду для выполнения hard reset репозитория WMI, если параметре salvagerepository не исправил проблему:

Winmgmt /resetrepository

Совет. На практике бывают случаи, когда пересоздание хранилища WMI приводит к проблемам со сторонним софтом. Это связано с тем, что все записи в базе WMI обнуляются (до состояния чистой системы). Такие программы скорее всего, придется переустанавливать в режиме восстановления.

Если обе команды (
Winmgmt /salvagerepository
и
Winmgmt /resetrepository
) не восстановили консистентное состояние базы WMI, попробуйте выполнить “жесткое” пересоздание базы WMI вручную таким скриптом:

sc config winmgmt start= disabled
net stop winmgmt
cd %windir%\system32\wbem
winmgmt /resetrepository
winmgmt /resyncperf
if exist Repos_bakup rd Repos_bakup /s /q
rename Repository Repos_bakup
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
sc config winmgmt start= auto
net start winmgmt
wmiprvse /regserver

сброс и восстановление хранилища wmi в windows 10

На 64 битной версии Windows нужно также перерегистрировать dll/exe и перекомпилировать mof файлы в каталоге %windir%\sysWOW64\wbem.

Данный скрипт полностью пересоздает хранилище WMI (старый репозиторий сохраняется в каталог Repos_bakup). После окончания работы скрипта нужно перезагрузить Windows. Затем протестируйте работу службы WMI простым запросом.

Проверьте состояние WMI репозитория. Если ошибки исправлены, команда
winmgmt /verifyrepository
должна вернуть:

WMI repository is consistent

WMI repository is consistent

В этой статье мы собрали основные способы, позволяющие продиагностировать и устранить неполадки службы и репозитория WMI.

I have been using a batch file for the past 1 year however suddenly I started getting below error while running it:

ERROR:Description = Invalid namespace

For below block of code:

for /f "skip=1 tokens=1-6 delims= " %%a in ('wmic path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') do (
        IF NOT "%%~f"=="" (
            set /a FormattedDate=10000 * %%f + 100 * %%d + %%a
            set FileDate=!FormattedDate:~-2,2!!FormattedDate:~-4,2!!FormattedDate:~-10,4!
            set Month=!FormattedDate:~-4,2!
        )
    )

I am not that familiar with bat files & was just using the above code to get current date in required format.

System: Windows 10

Please assist. Thanks in advance.

Edit:

On a more general note I am actually trying to get 3 things from system date:

  • File Date:23032018
  • Month:03
  • Date:23Mar2018

Compo's user avatar

Compo

36.7k5 gold badges27 silver badges39 bronze badges

asked Mar 23, 2018 at 8:38

pOrinG's user avatar

12

Try the following code to get the variables you require:

@Echo Off
Set "df=%TEMP%\~foo.ddf"&Set "tf=%TEMP%\~%Random%"
Set /A "Jan=1,Feb=2,Mar=3,Apr=4,May=5,Jun=6,Jul=7,Aug=8,Sep=9,Oct=10,Nov=11,Dec=12"
(   Echo .Set InfHeader=""&Echo .Set InfSectionOrder=""&Echo .Set InfFooter="%%2"
    For /L %%A In (1 1 4) Do Echo .Set InfFooter%%A=""
    Echo .Set Cabinet="OFF"&Echo .Set Compress="OFF"&Echo .Set DoNotCopyFiles="ON"
    Echo .Set RptFileName="NUL")>"%df%"
MakeCab /D InfFileName="%tf%" /F "%df%">Nul
For /F "UseBackQ Tokens=2,3,5" %%A In ("%tf%") Do (Set mmm=%%A
    Set /A "mm=%%A,dd=1%%B-100,yyyy=%%C")
Del "%tf%" "%df%">Nul 2>&1
Set "mm=10%mm%"&Set "DStr=%dd%%mmm%%yyyy%"
Set "FileDate=%dd%%mm:~-2%%yyyy%"&Set "Month=%mm:~-2%"
For %%A In (FileDate Month DStr) Do Call Echo %%%%%%A%%%% = %%%%A%%
Pause

The last two lines have been added just to show you the variables which were set; do not change any of the content before that point:

answered Mar 23, 2018 at 13:49

Compo's user avatar

CompoCompo

36.7k5 gold badges27 silver badges39 bronze badges

1

  • Remove From My Forums
  • General discussion

  • Добрый день.

    Помогите пожалуйста.

    ОС Win 7 SP1 32bit.

    Powershell версия Name                           Value

    —-                           ——
    PSVersion                      5.0.10586.117
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
    BuildVersion                   10.0.10586.117
    CLRVersion                     4.0.30319.42000
    WSManStackVersion              3.0
    PSRemotingProtocolVersion      2.3
    SerializationVersion           1.1.0.1

    Скачал и импортировал модуль NetTCPIP, но коммандлеты запускать не получается. Постоянно появляются однотипные ошибки

    PS C:\WINDOWS\system32> Get-NetIPInterface
    Get-NetIPInterface : Неправильное пространство имен
    At line:1 char:1
    + Get-NetIPInterface
    + ~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : MetadataError: (MSFT_NetIPInterface:ROOT/StandardCimv2/MSFT_NetIPInterface) [Get-NetIPInterface], CimException
        + FullyQualifiedErrorId : HRESULT 0x8004100e,Get-NetIPInterface

    PS C:\WINDOWS\system32> Get-NetTCPSetting
    Get-NetTCPSetting : Неправильное пространство имен
    At line:1 char:1
    + Get-NetTCPSetting
    + ~~~~~~~~~~~~~~~~~
        + CategoryInfo          : MetadataError: (MSFT_NetTCPSetting:ROOT/StandardCimv2/MSFT_NetTCPSetting) [Get-NetTCPSetting], CimException
        + FullyQualifiedErrorId : HRESULT 0x8004100e,Get-NetTCPSetting

    Как это можно исправить и можно ли вообще?

    Прошу прощения, неправильно выбрал категорию.

    • Edited by

      Wednesday, April 26, 2017 9:41 AM

    • Changed type
      Petko KrushevMicrosoft contingent staff
      Tuesday, May 2, 2017 8:06 AM

Любой бывалый Windows-админ периодически сталкивается с проблемами в работе службы WMI (Windows Management Instrumentation) и ее компонентах. Наличие проблем в подсистеме WMI является критичным с точки зрения нормального функционирования Windows, поэтому администратору необходимо проверить и восстановить работоспособность WMI. В этой статье мы опишем простую методику диагностирования и устранения неполадок службы WMI в Windows.

О наличии проблем с WMI может свидетельствовать широкий спектр ошибок:

  • Ошибки обработки WMI запросов в системных журналах и логах приложений (
    0x80041002 - WBEM_E_NOT_FOUND
    ,
    WMI: Not Found
    ,
    0x80041010 WBEM_E_INVALID_CLASS
    );
  • Ошибки обработки GPO, связанные на WMI ( некорректная работа wmi фильтров групповых политик, и пр.);
  • WMI запросы выполняются очень медленно;
  • Ошибки при установке или работе агентов SCCM/SCOM;
  • Ошибки в работе скриптов (vbs или PowerShell), использующих пространство имен WMI (скрипты с Get-WmiObject и т.д.).

Содержание:

  • Диагностика проблем с WMI
  • Исправление WMI репозитория, перерегистрация библиотек, перекомпиляция MOF файлов
  • Сброс и пересоздание WMI репозитория (хранилища)

Диагностика проблем с WMI

В первую очередь нужно проверить служба Windows Management Instrumentation (Winmgmt) установлена в Windows и запущена. Вы можете проверить состояние службы в консоли services.msc или с помощью PowerShell:

Get-Service Winmgmt | Select DisplayName,Status,ServiceName

служба Windows Management Instrumentation (Winmgmt) работает

Если служба Winmgmt запущена, вы можете проверить работоспособность WMI, обратившись к ней с помощью простого WMI-запроса. Вы можете выполнить wmi запрос из командной строки или из PowerShell. Например, следующая команда выведет список установленных в Windows программ:

wmic product get name,version

Простейшая PowerShell команда для получения информации о версии и билда Windows 10 через WMI может выглядеть так:

get-wmiobject Win32_OperatingSystem

powershell проверка работы wmi командой get-wmiobject

Как вы видите, служба WMI ответила на запрос корректно. Если при выполнении такого WMI-запроса Windows возвращает ошибку, скорее всего сервиса WMI работает некорректно, поврежден WMI репозиторий или есть какие-то другие проблемы.

ошибка Failed to initialize all required WMI classes

В моем случае, например, при открытии свойств WMI Control в консоли управления компьютером (compmgmt.msc) появлялась надпись:

Failed to initialize all required WMI classes
Win32_Processor. WMI: Invalid namespace
Win32_WMISetting. WMI: Invalid namespace
Win32_OperationSystem. WMI: Invalid namespace

Ранее для диагностики WMI существовала официальная утилита от Microsoft – WMIDiag.vbs (Microsoft WMI Diagnosis). WMIdiag это vbs скрипт, который проверяет различные подсистемы WMI и записывает собранную информацию в лог файлы (по умолчанию логи находятся в каталоге %TEMP% — C:USERS%USERNAME%APPDATALOCALTEMP). Получившийся отчет состоит из файлов, имена которых начинаются с WMIDIAG-V2.2 и включает в себя следующие типы фалов:

  • .log файлы содержат подробный отчет об активности и работе утилиты WMIDiag;
  • .txt файлы содержат итоговые отчеты о найденных ошибках, на которые стоит обратить внимание;
  • В .csv файлах содержится информация, нужная для долгосрочного анализа работы подсистемы WMI.

скрипт для исправления ошибок WMI WMIDiag.vbs

Совет. В 64 битных версиях Windows wmidiag нужно запускать так:

c:windowsSystem32cscript.exe wmidiag.vbs

в противном случае появится ошибка:

WMIDiag must be run from native 64-bit environment. It is not supported in Wow64.

WMIDiag It is not supported in Wow64

После окончания работы утилиты 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 с помощью команды:

winmgmt /verifyrepository

winmgmt-verifyrepository - проверка состояния репозитория wmi

Если команда возвращает, что база данных WMI находится в неконсистентном состоянии (INCONSISTENT или WMI repository verification failed), стоит попробовать выполнить “мягкое” исправление ошибок репозитория:

Winmgmt /salvagerepository

WMI repository has been salvaged.

Данная команда выполняет проверку согласованности хранилища 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

На 64 битной версии Windows эти действия нужно также выполнить для каталога SysWOW64. Замените третью строку на

cd %windir%SysWOW64wbem

bat скрипт для перерегистрации компонентов wmi

Указанные команды можно выполнить путем простой вставки в окно командой строки, либо сохранить код в bat файле wmi_soft_repair.bat и запустить его с правами администратора. После окончания работы скрипта, перезагрузите Windows и проверьте работу WMI.

Сброс и пересоздание WMI репозитория (хранилища)

Если вам не помогли мягкие способ восстановления WMI, рассмотренные выше, придется перейти к более “жесткому” способу восстановления работоспособности службы WMI, заключающегося в пересоздании хранилищаWMI.

WMI репозиторий (хранилище) находится в каталоге
%windir%System32WbemRepository
и представляет собой базу данных, в которой содержится информация о метаданных и определениях WMI классов. В некоторых случаях WMI репозиторий может содержать статическую информацию классов. При повреждении репозитория WMI, в работе службы Windows Management Instrumentation (Winmgmt) могут наблюдаться ошибки вплоть до полной невозможности ее запустить.

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

Следующая команда выполнит сброс базы данных WMI к исходному состоянию (как после чистой установки Windows). Используйте эту команду для выполнения hard reset репозитория WMI, если параметре salvagerepository не исправил проблему:

Winmgmt /resetrepository

Совет. На практике бывают случаи, когда пересоздание хранилища WMI приводит к проблемам со сторонним софтом. Это связано с тем, что все записи в базе WMI обнуляются (до состояния чистой системы). Такие программы скорее всего, придется переустанавливать в режиме восстановления.

Если обе команды (
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 в windows 10

На 64 битной версии Windows нужно также перерегистрировать dll/exe и перекомпилировать mof файлы в каталоге %windir%sysWOW64wbem.

Данный скрипт полностью пересоздает хранилище WMI (старый репозиторий сохраняется в каталог Repos_bakup). После окончания работы скрипта нужно перезагрузить Windows. Затем протестируйте работу службы WMI простым запросом.

Проверьте состояние WMI репозитория. Если ошибки исправлены, команда
winmgmt /verifyrepository
должна вернуть:

WMI repository is consistent

WMI repository is consistent

В этой статье мы собрали основные способы, позволяющие продиагностировать и устранить неполадки службы и репозитория WMI.

Продолжая тему борьбы с неполадками в работе Windows Management Instrumentation (WMI) рассмотрим ситуацию когда проблемный сервер «ни под каким соусом» не хочет возвращать значения из пространства имён WMI, что чревато всякими неприятностями, например при просмотре свойств системы не отображается информация о процессоре и оперативной памяти…

image

При попытке открыть свойства WMI Control в оснастке Computer Management можно обнаружить ошибку инициализации основных системных WMI классов.

Failed to initialize all required WMI classes.
Win32_Processor. WMI: Invalid namespace   
Win32_WMISetting. WMI: Invalid namespace 
Win32_OperationSystem. WMI: Invalid namespace

image

Методы исправления ситуации

Метод #1

Пробуем перезапустить службу WMI и если проблема не устраняется запускаем проверку согласованности базы данных WMI с запуском её перестроения при обнаружении несогласованности.

net stop Winmgmt & net start Winmgmt
winmgmt /salvagerepository

Метод #2

Метод с перекомпиляцией mof/mfl файлов имеющихся в каталоге %windir%system32wbem. Помогал неоднократно. Запускаем на проблемном сервере командную строку с правами Администратора и выполняем последовательно команды:

cd /d C:WINDOWSsystem32wbem
for /f %x in ('dir /b *.mof ^| findstr /v /i uninstall') do mofcomp %x

Метод #3

Более жёсткий метод. Можно попробовать его если первый и второй методы не помогают. Останавливаем службу WMI, выполняем перерегистрацию всех библиотек dll в каталоге %windir%system32wbem, переименовываем каталог %windir%system32wbemRepository и снова запускаем службу WMI, после чего WMI Repository будет сгенерирован заново.

net stop Winmgmt 
cd /d C:WINDOWSsystem32wbem 
for /f %s in ('dir /b *.dll') do regsvr32 /s %s 
move C:WINDOWSsystem32wbemRepository Repository_BAD
net start Winmgmt

После этого, если проблемы с WMI устранены, можно удалить каталог Repository_BAD а также при необходимости выполнить перекомпиляцию файлов *.mof относящихся к отдельным приложениям таким как например SQL Server.

Дополнительные источники информации:

TechNet Forums — failed to initialize all required wmi classes on Primary server
TechNet Forums — WMI becomes corrupt on FIM Service/Sync server

Skip to content

  • ТВикинариум
  • Форум
  • Поддержка
  • PRO
  • Войти

ФорумXpucT2022-08-18T02:06:35+03:00

Вы должны войти, чтобы создавать сообщения и темы.

Ошибка

Цитата: Артем от 13.01.2023, 00:29

System.Management.ManagementException: Неправильное пространство имен
в System.Management.ThreadDispatch.Start()
в System.Management.ManagementScope.Initialize()
в System.Management.ManagementObjectSearcher.Initialize()
в System.Management.ManagementObjectSearcher.Get()
в System.Deps.Infobase.Mother()
в System.Deps.Infobase.​‌‌‏​‌‌‭​‫‏‮‪‮‌‌‍‬‌‭‎‬‮‏‮()
в System.Deps.Infobase..cctor()

System.Management.ManagementException: Неправильное пространство имен
в System.Management.ThreadDispatch.Start()
в System.Management.ManagementScope.Initialize()
в System.Management.ManagementObjectSearcher.Initialize()
в System.Management.ManagementObjectSearcher.Get()
в System.Deps.Infobase.Mother()
в System.Deps.Infobase.​‌‌‏​‌‌‭​‫‏‮‪‮‌‌‍‬‌‭‎‬‮‏‮()
в System.Deps.Infobase..cctor()

Голосуйте — палец вниз.0Голосуйте — палец вверх.0

Profile photo ofPotapovS

Цитата: Сергей от 13.01.2023, 00:29

Артем, приветствую 🖐
Сделайте перезагрузку и попробуйте снова запустить программу.

Артем, приветствую 🖐
Сделайте перезагрузку и попробуйте снова запустить программу.

Голосуйте — палец вниз.0Голосуйте — палец вверх.0

Любой бывалый Windows-админ не раз сталкивался с проблемами в работе службы WMI и ее компонентах. Наличие проблем в подсистеме WMI является критичным с точки зрения нормального функционирования системы, поэтому администратору приходится прибегать к тем или иным трюкам, позволяющим восстановить работоспособность WMI.  В этой статье мы опишем достаточно простую методику диагностирования и устранения неполадок в службе WMI.

О наличии проблем с WMI может свидетельствовать широкий спектр ошибок:

  • Ошибки обработки WMI запросов в системных журналах и логах приложений
  • Ошибки GPO, завязанные на WMI ( некорректная работа wmi фильтров политик, и пр.)
  • Ошибки в работе / невозможность установки агентов SCCM/SCOM
  • Ошибки в работе скриптов (vbs или powershell), использующих пространство имен WMI

В первую очередь нужно проверить имеется ли в системе служба Windows Management Instrumentation (Winmgmt) и включена ли она.

Если служба  присутствует и находится в состоянии Started, рекомендуется протестировать работоспособность WMI, обратившись к ней с помощью простого wmi-запроса. С помощью Powershell, например, это можно сделать так:

get-wmiobject Win32_OperatingSystem

Если при выполнении простейшего WMI-запроса система возвращает ошибку (на скриншоте приведен пример корректного ответа службы WMI), вероятно имеет место некорректное функционирование сервиса WMI или ряда его подсистем, повреждение репозитория WMI или другие проблемы.

Утилита WMIDiag

Для «тонкой» диагностики службы WMI существует официальная утилита Microsoft — WMIDiag (Microsoft WMI Diagnosis). Утилита представляет собой vbs скрипт, который проверяет различные подсистемы WMI и записывает собранную информацию в лог файлы (по умолчанию логи находятся в каталоге %TEMP% — C:USERS%USERNAME%APPDATALOCALTEMP). Получившийся отчет состоит из файлов, имена которых начинаются с WMIDIAG-V2.1 и включает в себя следующие типы фалов :

  • .log файлы содержат подробный отчет об активности и работе утилиты WMIDiag
  • .txt файлы содержат итоговые отчеты о найденных ошибках, на которые стоит обратить внимание
  • В .csv файлах содержится информация, нужная для долгосрочного анализа работы подсистемы WMI

Совет. В 64 битных версиях Windows wmidiag нужно запускать так:

c:windowsSystem32cscript.exe wmidiag.vbs

в противном случае появится ошибка: WMIDiag must be run from native 64-bit environment. It is not supported in Wow64.

После окончания работы утилиты WMIDiag администратор должен изучить полученные файлы логов, проанализировать и попытаться исправить найденные ошибки.

В общем случае, WMIDiag может дать информацию по исправлению частных ошибок в WMI , но в большинстве случаев процесс это довольно трудоемкий и стоит потраченного времени только при решении инцидентов в критичных системах (как правило, на продуктивных серверах). Для массового сегмента рабочих станций пользователей гораздо проще «бить по площадям» и решать проблему работы WMI более радикально.

Перерегистрация библиотек WMI и перекомпиляция mof файлов

Следующий скрипт представляет собой «мягкий» вариант восстановления работоспособности службы 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

winmgmt /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.

В том случае, если предыдущий способ не помог, придется перейти к более «жесткому» способу восстановления работоспособности службы WMI, заключающегося в пересоздании хранилища.

WMI репозиторий (хранилище) находится в каталоге %windir%System32WbemRepository и представляет собой базу данных, в которой содержится информация о метаданных и определениях WMI классов. В некоторых случаях репозитория WMI может содержать статическую информацию классов. При повреждении репозитория WMI,  в работе службы Windows Management Instrumentation (Winmgmt) могут наблюдаться ошибки вплоть до полной невозможности ее запустить.

В том случае, если вы подозреваете, что репозиторий WMI поврежден, имейте в виду, что его пересоздание это последняя вещь, к которой нужно прибегнуть только в том случае, если никакие другие операции реанимировать WMI не помогают.

Совет. На практике бывают случаи, когда пересоздание хранилища WMI приводит к проблемам со сторонним софтом. Вызван этот эффект тем, что все записи в базе WMI обнуляются (до состояния чистой системы). Такое ПО, вероятно, придется переустанавливать в режиме восстановления.

В Windows Vista и выше проверить целостность репозитория WMI  можно с помощью команды:

winmgmt /verifyrepository

Если команда возвращает, что база данных WMI находится в неконсистентном состоянии (INCONSISTENT), стоит попробовать выполнить «мягкое» восстановление репозитория:

Winmgmt /salvagerepository

И перезапустить службу wmi:

net stop Winmgmt
net start Winmgmt

Если описанная выше команда не помогла, выполняем сброс репозитория на начальное состояние (hard reset) так:

Winmgmt /resetrepository

В том случае, если команды Winmgmt /salvagerepository и Winmgmt /resetrepository желаемого эффекта не дали, стоит попробовать выполнить «жесткое» пересоздание базы WMI вручную таким сценарием:

sc config winmgmt start= disabled

net stop winmgmt

cd %windir%system32wbem

winmgmt /kill

winmgmt /unregserver

winmgmt /regserver

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). После окончания работы скрипта компьютер нужно перезагрузить, после чего протестировать работу службы WMI простым запросом.

При открытии редактора локальной групповой политики на моем компьютере с Windows 10 Pro я получил следующее сообщение об ошибке:

Пространство имен ‘Microsoft.Policies.Sensors.WindowsLocationProvider’ уже определено как целевое пространство имен для другого файла в хранилище.

Нажав на ОК, окно исчезло, и я смог продолжить работу над редактором групповой политики.

Вопрос – что это за ошибка и почему это происходит?

Пространство имен уже определено

Это происходит потому, что файл LocationProviderADM.admx был переименован в Microsoft-Windows-Geolocation-WLPAdm.admx в Windows 10.

Так что вполне возможно, что вы столкнулись с этой ошибкой на некоторых системах после обновления до Windows 10 RTM. Но вы не заметите этого, если вы обновились до Windows 10 v1511 с Windows 8.1 или Windows 7.

Microsoft объясняет, что эта ошибка предназначена только для информационных целей, а нажатие на кнопку «ОК» и движение вперед приведут к нормальной работе GPEDIT.

Однако, если вы хотите устранить причину этого, KB3077013 предлагает удалить файлы LocationProviderADM.admx и LocationProviderADM.adml и изменить имена Microsoft-Windows-Geolocation-WLPAdm.admx и Microsoft-Windows-Geolocation- WLPAdm.adml файлы с правильными именами.

Для этого сначала создайте точку восстановления системы. Затем откройте окно командной строки с повышенными правами и выполните следующую команду:

 takeown/F "C:  Windows  PolicyDefinitions  Microsoft-Windows-Geolocation-WLPAdm.admx"/A 

С последующим-

 takeown/F "C:  Windows  PolicyDefinitions  en-US  Microsoft-Windows-Geolocation-WLPAdm.adml"/A 

Затем предоставьте администраторам Полный доступ разрешения для обоих файлов. Для этого откройте C: Windows PolicyDefinitions и щелкните правой кнопкой мыши файл Microsoft-Windows-Geolocation-WLPAdm.admx и выберите Свойства.

На вкладке «Безопасность» нажмите кнопку Изменить . Далее в новом окне настроек выберите Полный доступ , как показано ниже. Нажмите Применить, OK и выйдите.

Сделайте то же самое для файла C: Windows PolicyDefinitions en-US Microsoft-Windows-Geolocation-WLPAdm.adml .

Наконец, переименуйте оба файла с расширением .old.

Перезагрузите компьютер и посмотрите.

Сообщения об ошибках исчезнут.

  • Remove From My Forums
  • General discussion

  • Добрый день.

    Помогите пожалуйста.

    ОС Win 7 SP1 32bit.

    Powershell версия Name                           Value

    —-                           ——
    PSVersion                      5.0.10586.117
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
    BuildVersion                   10.0.10586.117
    CLRVersion                     4.0.30319.42000
    WSManStackVersion              3.0
    PSRemotingProtocolVersion      2.3
    SerializationVersion           1.1.0.1

    Скачал и импортировал модуль NetTCPIP, но коммандлеты запускать не получается. Постоянно появляются однотипные ошибки

    PS C:WINDOWSsystem32> Get-NetIPInterface
    Get-NetIPInterface : Неправильное пространство имен
    At line:1 char:1
    + Get-NetIPInterface
    + ~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : MetadataError: (MSFT_NetIPInterface:ROOT/StandardCimv2/MSFT_NetIPInterface) [Get-NetIPInterface], CimException
        + FullyQualifiedErrorId : HRESULT 0x8004100e,Get-NetIPInterface

    PS C:WINDOWSsystem32> Get-NetTCPSetting
    Get-NetTCPSetting : Неправильное пространство имен
    At line:1 char:1
    + Get-NetTCPSetting
    + ~~~~~~~~~~~~~~~~~
        + CategoryInfo          : MetadataError: (MSFT_NetTCPSetting:ROOT/StandardCimv2/MSFT_NetTCPSetting) [Get-NetTCPSetting], CimException
        + FullyQualifiedErrorId : HRESULT 0x8004100e,Get-NetTCPSetting

    Как это можно исправить и можно ли вообще?

    Прошу прощения, неправильно выбрал категорию.

    • Edited by

      Wednesday, April 26, 2017 9:41 AM

    • Changed type
      Petko KrushevMicrosoft contingent staff
      Tuesday, May 2, 2017 8:06 AM

Обновлено March 2023: перестаньте получать сообщения об ошибках и замедлите работу вашей системы с помощью нашего инструмента оптимизации. Получить сейчас в эту ссылку

  1. Скачайте и установите инструмент для ремонта здесь.
  2. Пусть он просканирует ваш компьютер.
  3. Затем инструмент почини свой компьютер.

Когда я открыл редактор локальной групповой политики на своем компьютере с Windows 10 Pro, я получил следующее сообщение об ошибке:

Пространство имен’Microsoft.Policies.Sensors.Sensors.WindowsLocationProvider ‘уже определено как целевое пространство имен для другого файла в памяти

Нажав OK, я потерял поле и смог продолжить работу над редактором групповой политики.

Вопрос в том, что это за ошибка и почему она возникает?

Пространство имен уже определено

Обновление за март 2023 года:

Теперь вы можете предотвратить проблемы с ПК с помощью этого инструмента, например, защитить вас от потери файлов и вредоносных программ. Кроме того, это отличный способ оптимизировать ваш компьютер для достижения максимальной производительности. Программа с легкостью исправляет типичные ошибки, которые могут возникнуть в системах Windows — нет необходимости часами искать и устранять неполадки, если у вас под рукой есть идеальное решение:

  • Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
  • Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.

скачать

Это связано с тем, что файл LocationProviderADM.admx в Windows 10 был переименован в Microsoft-Windows-Geolocation-WLPAdm.admx.

Итак, после обновления до Windows 10 RTM вы можете столкнуться с этой ошибкой в ​​некоторых системах. Однако вы не заметите этого, если обновились напрямую с Windows 8.1 или Windows 7 до Windows 10 v1511.

Microsoft объясняет, что эта ошибка носит исключительно информационный характер, и если вы нажмете ОК и двинетесь вперед, функция GPEDIT будет работать нормально.

Однако если вы хотите устранить причину, KB3077013 предлагает удалить файлы LocationProviderADM.admx и LocationProviderADM.adml и изменить имена файлов Microsoft-Windows-Geolocation-WLPAdm.admx и Microsoft-Windows-Geolocation-WLPAdm.admx и Microsoft -Windows-Geolocation-WLPAdm.adml с правильными именами.

Сначала создайте точку восстановления системы. Затем откройте расширенное окно командной строки pt и выполните следующую команду:

 takeown / F 'C: WindowsPolicyDefinitionenMicrosoft-WLPAdm.admx' / A

Последовал

 takeown / F: WindowsPolicyDefinitionsen-USMicrosoft-Windows-Geolocation-WLPAdm. adml '/ A

Затем предоставьте администраторам Полный доступ разрешения для обоих файлов. Откройте C: WindowsPolicyDefinitions и щелкните правой кнопкой мыши файл Microsoft-Windows-Geolocation-WLPAdm.admx. и выберите «Свойства».

На вкладке «Безопасность» нажмите кнопку «Изменить». , Затем выберите Полный контроль в новом поле настройки как показано ниже. Нажмите Apply, OK и завершите процесс.

Сделайте то же самое для файла C: WindowsPolicyDefinitionsen-USMicrosoft-Windows-геолокации-WLPAdm.adml.

в заключение переименовать оба файла с расширением .old.

Перезагрузите компьютер и проверьте.

Сообщения об ошибках исчезают.

Совет экспертов: Этот инструмент восстановления сканирует репозитории и заменяет поврежденные или отсутствующие файлы, если ни один из этих методов не сработал. Это хорошо работает в большинстве случаев, когда проблема связана с повреждением системы. Этот инструмент также оптимизирует вашу систему, чтобы максимизировать производительность. Его можно скачать по Щелчок Здесь

Сообщение Просмотров: 126

Продолжая тему борьбы с неполадками в работе Windows Management Instrumentation (WMI) рассмотрим ситуацию когда проблемный сервер «ни под каким соусом» не хочет возвращать значения из пространства имён WMI, что чревато всякими неприятностями, например при просмотре свойств системы не отображается информация о процессоре и оперативной памяти…

image

При попытке открыть свойства WMI Control в оснастке Computer Management можно обнаружить ошибку инициализации основных системных WMI классов.

Failed to initialize all required WMI classes.
Win32_Processor. WMI: Invalid namespace   
Win32_WMISetting. WMI: Invalid namespace 
Win32_OperationSystem. WMI: Invalid namespace

image

Методы исправления ситуации

Метод #1

Пробуем перезапустить службу WMI и если проблема не устраняется запускаем проверку согласованности базы данных WMI с запуском её перестроения при обнаружении несогласованности.

net stop Winmgmt & net start Winmgmt
winmgmt /salvagerepository

Метод #2

Метод с перекомпиляцией mof/mfl файлов имеющихся в каталоге %windir%\system32\wbem. Помогал неоднократно. Запускаем на проблемном сервере командную строку с правами Администратора и выполняем последовательно команды:

cd /d C:\WINDOWS\system32\wbem
for /f %x in ('dir /b *.mof ^| findstr /v /i uninstall') do mofcomp %x

Метод #3

Более жёсткий метод. Можно попробовать его если первый и второй методы не помогают. Останавливаем службу WMI, выполняем перерегистрацию всех библиотек dll в каталоге %windir%\system32\wbem, переименовываем каталог %windir%\system32\wbem\Repository и снова запускаем службу WMI, после чего WMI Repository будет сгенерирован заново.

net stop Winmgmt 
cd /d C:\WINDOWS\system32\wbem 
for /f %s in ('dir /b *.dll') do regsvr32 /s %s 
move C:\WINDOWS\system32\wbem\Repository Repository_BAD
net start Winmgmt

После этого, если проблемы с WMI устранены, можно удалить каталог Repository_BAD а также при необходимости выполнить перекомпиляцию файлов *.mof относящихся к отдельным приложениям таким как например SQL Server.

Дополнительные источники информации:

TechNet Forums — failed to initialize all required wmi classes on Primary server
TechNet Forums — WMI becomes corrupt on FIM Service/Sync server

  • Нет вкладки игры в windows 10
  • Нет браузера на компьютере что делать windows 7
  • Неправильное имя пользователя или пароль windows 10 как исправить
  • Нет вкладки защита системы windows 10
  • Нет активного поставщика антивирусной программы windows 10 как включить