我正在寻找注册表项的子项,同时比较它们的值。例如:
HKCU:\Software\Microsoft\Office\16.0\Outlook\Profiles\mail\9375CFF0413111d3B88A00104B2A6676
此注册表项包含两个子项。我想浏览两个子项,直到找到将其“帐户名”设置为当前登录用户的子项。一旦我检测到右键,我也想向键属性添加值。
if ((Test-Path $path1) -eq $true) {
$registry = Get-ChildItem "HKCU:\Software\Microsoft\Office\16.0\Outlook\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\"
foreach ($key in $registry) {
$key | Where-Object {$_.Name -eq "00000002"}
Write-Host "i found 00000002"
}
}
在这种情况下,我想扫描每个子项00000001和00000002,看看其中哪个子项的帐户名变量设置为当前用户。从本质上讲,如何遍历并从每个$ key对象中提取值。
答案 0 :(得分:0)
我自己弄清楚了。本质上,您想在当前的get-childitem输出上使用get-childitem。因此,对于我的示例,我最终使用了以下代码段。
$path1 = "HKCU:\Software\Microsoft\Office\16.0\Outlook\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\*" ## Reg key location for calling signature file
$path2 = "HKCU:\Software\Microsoft\Office\16.0\Outlook\Profiles\mail\9375CFF0413111d3B88A00104B2A6676\*" ## Reg key location for calling signature file alternate
if ((test-path $path2) -eq $True) {
Get-ChildItem $path2 |
Get-ItemProperty |
Where-Object{
$_.'Account Name' -match $env:USERNAME
}| Set-ItemProperty -name 'New Signature' -value $env:USERNAME
}