Поиск и замена значения реестра с использованием powershell

Я пытаюсь обновить набор ключей реестра, необходимо обновить набор свойств новым значением, основанным на старом значении.

Я пытался использовать следующее:

 Get-ItemProperty -Path HKCU:\Software\xxxxx\*.mydomain.com Uri 
      | set-itemproperty -Path { $_.PSPath } Uri -Value { $_.Value -Replace ".mydomain.com/", ".mynewdomain.com/" }

Но это устанавливает значение свойства uri: { $_.Value -Replace ".mydomain.com/", ".mynewdomain.com/" }

Я старался:

 Get-ItemProperty -Path HKCU:\Software\xxxxx\*.mydomain.com Uri 
      | set-itemproperty -Path { $_.PSPath } Uri -Value ${ $_.Value -Replace ".mydomain.com/", ".mynewdomain.com/" }

А также

 Get-ItemProperty -Path HKCU:\Software\xxxxx\*.mydomain.com Uri 
      | set-itemproperty -Path { $_.PSPath } Uri -Value ( $_.Value -Replace ".mydomain.com/", ".mynewdomain.com/" )

Но это очищает ценность.

Я хочу обновить несколько значений реестра в нескольких ключах, используя как можно меньше строк. Я уже начал работать, экспортировав реестр, используя блокнот для поиска и замены, а затем повторно импортировав записи реестра, но это было похоже на обман. Я действительно хочу знать, как я могу добиться этого с помощью Powershell.

Другие вещи, которые я пробовал: $(...), (...), опуская -Value вариант вы называете это:S.

Я пытался заменить $_.Value с $_.Uri а также $_, тоже не работал.

1 ответ

Решение
 Get-ItemProperty -Path HKCU:\Software\xxxxx\*.mydomain.com Uri | %{set-itemproperty -Path $_.PSPath Uri -Value ( $_.Uri -Replace ".mydomain.com/", ".mynewdomain.com/" )}
Другие вопросы по тегам