This should work. Double check the quotes and brackets to make sure that I got it right.
$ThisFile = 'c:\temp\Local State'
$data = Get-Content $ThisFile
if ($data.Contains('read-later@2')) {
"Looks like this file was already updated."
"Exiting."
exit
}
if ($data.Contains('enabled_labs_experiments') -eq $false) {
"I didn't find enabled_labs_experiments anywhere."
"I will insert after browser."
$data = $data.Replace('browser":{','browser":{"enabled_labs_experiments":["read-later@2"],')
$data | Out-File -encoding ASCII $ThisFile
"I updated $ThisFile"
exit
}
if ($data.Contains('enabled_labs_experiments":[]') -eq $false) {
"Looks like this file has something different specified for enabled_labs_experiments."
"I don't know what to do so I'm exiting."
exit
}
$data = $data.Replace('enabled_labs_experiments":[]','enabled_labs_experiments":["read-later@2"]')
$data | Out-File -encoding ASCII $ThisFile
"I updated $ThisFile"