我正在尝试在注册表(HKLM:\ Cluster \ Resources)中搜索匹配= VirtualServerName的任何值名称。并将其关联的数据键输出到数组。
例如:
Name Type Data
VirtualServerName REG_SZ SQLDEP05
但是我无法使用Get-ItemProperty命令为重复搜索找到正确的开关。
因此,我尝试使用Get-ChileItem insted:
$Reg = "HKLM:\Cluster\Resources\"
Get-ChildItem -recurse "$Reg" | Select-Object -Property VirtualServerName -ExcludeProperty $exclude | ForEach-Object { $_.PSObject.Properties.Value }
仅当我使用$ _。PSObject.Properties开关中的 .Name 选项时,该选项才起作用。
但是当我尝试获取VirtualServerName的值时, .Value :
$Reg = "HKLM:\Cluster\Resources\"
Get-ChildItem -recurse "$Reg" | Select-Object -Property VirtualServerName -ExcludeProperty $exclude | ForEach-Object { $_.PSObject.Properties.Value }
我没有任何输出。
答案 0 :(得分:1)
使用Where-Object
使用GetValueNames()
method测试特定键下是否存在值名称:
$Keys = Get-ChildItem -Path $Reg -Recurse |Where-Object {$_.GetValueNames() -contains 'VirtualServerName'}
现在您已经有了相关的密钥,可以使用Get-ItemProperty
来获取值数据:
$Keys |Get-ItemProperty VirtualServerName
$Keys |ForEach-Object {
$_.GetValue('VirtualServerName')
}