Ваш код выдает мне эту ошибку ...
Get-ItemPropertyValue: свойство HOME_VAL не существует по пути HKEY_LOCAL_MACHINE \ SOFTWARE \ key1
... когда он встречает ключ без значения HOME_VAL
.
Это работает для меня, чтобы получить полный путь к ключу ...
PS> $filterValueName = 'home_val'
PS> $filterValueData = 'C:\dir1'
PS> Get-ChildItem -Path 'HKLM:\SOFTWARE\key*' -Recurse `
| Where-Object { ($_ | Get-ItemProperty -Name $filterValueName).$filterValueName -eq $filterValueData } `
| Select-Object -ExpandProperty 'Name'
HKEY_LOCAL_MACHINE\SOFTWARE\key1\home1
Это будет перечислять все ключи-потомки ниже любого HKLM:\SOFTWARE\key*
ключи, выбирая те, которые имеют значение с именем home_val
с данными C:\dir1
и извлекая их свойство Name
. Если вы хотите указать имя ключа вместо его пути, вы можете выбрать вместо него свойство PSChildName
.