使用 powershell 搜尋並取代註冊表項值

使用 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/" )}

相關內容