Я пытаюсь запросить классы в 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.