Pesquise e substitua o valor da entrada do registro usando o PowerShell

Pesquise e substitua o valor da entrada do registro usando o PowerShell

Estou tentando atualizar um conjunto de chaves de registro. Um conjunto de propriedades precisa ser atualizado com um novo valor baseado no valor antigo.

Eu tentei usar o seguinte:

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

Mas isso define o valor da propriedade uri como:{ $_.Value -Replace ".mydomain.com/", ".mynewdomain.com/" }

Tentei:

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

E

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

Mas isso limpa o valor.

Quero atualizar vários valores de registro em várias chaves com o mínimo de linhas possível. Já fiz funcionar exportando o registro, usei o bloco de notas para pesquisar e substituir e depois reimportar as entradas do registro, mas parecia uma trapaça. Eu realmente quero saber como posso conseguir isso usando o Powershell.

Outras coisas que tentei: $(...), (...), omitindo a -Valueopção que você nomeia: S.

Tentei substituir $_.Valuepor $_.Urie $_, também não funcionou.

Responder1

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

informação relacionada