Ответ 1
Вот способ:
$a = Get-Content 'D:\temp\mytest.json' -raw | ConvertFrom-Json
$a.update | % {if($_.name -eq 'test1'){$_.version=3.0}}
$a | ConvertTo-Json -depth 32| set-content 'D:\temp\mytestBis.json'
В соответствии с @FLGMwt и @mikemaccana я ConvertTo-Json
с -depth 32
потому что значение глубины по умолчанию равно 2, а для объекта глубже 2 вы получите информацию о классе, несмотря на объекты.