Buscar y reemplazar el valor de la entrada del registro usando powershell

Buscar y reemplazar el valor de la entrada del registro usando powershell

Estoy intentando actualizar un conjunto de claves de registro, es necesario actualizar un conjunto de propiedades con un nuevo valor basado en el valor anterior.

Intenté usar lo siguiente:

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

Pero eso establece el valor de la propiedad uri en:{ $_.Value -Replace ".mydomain.com/", ".mynewdomain.com/" }

Lo intenté:

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

Y

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

Pero eso aclara el valor.

Quiero actualizar varios valores de registro en varias claves con la menor cantidad de líneas posible. Ya lo hice funcionar exportando el registro, usé el bloc de notas para buscar y reemplazar y luego volver a importar las entradas del registro, pero me pareció una trampa. Realmente quiero saber cómo puedo lograr esto usando Powershell.

Otras cosas que he probado: $(...), (...)omitiendo la -Valueopción que le pongas :S.

Intenté reemplazar $_.Valuecon $_.Uriy $_tampoco funcionó.

Respuesta1

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

información relacionada