#powershell #registry
#powershell #реестр
Вопрос:
Я хочу просканировать раздел реестра на предмет его подразделов, сравнивая их значения value. Например:
HKCU:SoftwareMicrosoftOffice16.0OutlookProfilesmail9375CFF0413111d3B88A00104B2A6676
Этот раздел реестра содержит два подраздела. Я хочу просмотреть два подраздела, пока не найду тот, у которого имя учетной записи задано как у текущего вошедшего в систему пользователя. Как только я определю правильный ключ, я также хочу добавить значения к свойствам ключей.
if ((Test-Path $path1) -eq $true) {
$registry = Get-ChildItem "HKCU:SoftwareMicrosoftOffice16.0OutlookProfilesOutlook9375CFF0413111d3B88A00104B2A6676"
foreach ($key in $registry) {
$key | Where-Object {$_.Name -eq "00000002"}
Write-Host "i found 00000002"
}
}
Я хочу просканировать каждый подраздел в данном случае 00000001 и 00000002 и посмотреть, в каком из них переменная имени учетной записи установлена для текущего пользователя. По сути, как просматривать и извлекать значения из каждого объекта $ key.
Комментарии:
1. Мне непонятно, в чем здесь ваш вопрос. С какой проблемой вы столкнулись? Чего вы ожидаете от своего кода и что он на самом деле делает? Вы получаете ошибки? Что они говорят?
2. В чем ваш вопрос? Я не вижу причины, по которой вы не должны делать то, что вы хотите
3. Я обновил исходное сообщение. Если вы, ребята, можете помочь, это было бы оценено.
Ответ №1:
Я разобрался с этим самостоятельно. По сути, вы хотите использовать get-childitem для текущего вывода get-childitem. Итак, для моего примера я закончил тем, что использовал следующий фрагмент кода.
$path1 = "HKCU:SoftwareMicrosoftOffice16.0OutlookProfilesOutlook9375CFF0413111d3B88A00104B2A6676*" ## Reg key location for calling signature file
$path2 = "HKCU:SoftwareMicrosoftOffice16.0OutlookProfilesmail9375CFF0413111d3B88A00104B2A6676*" ## 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
}