Назад | Перейти на главную страницу

Не удается запросить определенные пространства имен / классы в WMI (Get-WmiObject: не поддерживается)

Я пытаюсь запросить классы в root\microsoft\windows\managementtools пространство имен, но получаю странную ошибку. Я подтвердил, что это пространство имен существует на моем компьютере, потому что я могу запросить его с помощью WMIExplorer. Вот ошибка:

C:\> Get-WmiObject -Namespace ROOT\Microsoft\Windows\ManagementTools -Query "SELECT * FROM MSFT_MTRegistryKey"
Get-WmiObject : Not supported
At line:1 chat:1 ...

Я запускаю это локально на сервере Windows 2016 и через PowerShell администратора. Я подтвердил, что группа администраторов имеет все права доступа на вкладке безопасности WMI.

Учитывая, что GetKey метод этого класса возвращается объект того же класса, я не думаю, что вы можете запросить его таким образом. По сути, вы получаете экземпляр каждого отдельного ключа во всем реестре локального компьютера. Этот сайт утверждает, что это число исчисляется миллионами.

Возможно ты хочешь попробовать

Invoke-WmiMethod -Namespace root\microsoft\windows\managementtools -Class MSFT_MTRegistryKey -Name GetKey -ArgumentList '<name of key>'

В возвращаемом объекте вы можете вызвать GetSubKeys или GetValues на его Result свойство.

Кстати, есть еще StdRegProv класс для запросов к реестру с помощью WMI / CIM.