A: 

This line solves my problem:

(Get-Content "$aomsDir\$file") | % {$_ -replace '"', '"'} | Set-Content -path "$aomsDir\$file"

It will ensure that " is written to the config file and allows the application to connect to the database.

Alan
A: 

That would be expected for a double quote embedded in a double quote delimited attribute value. Any chance you could use a single quote instead e.g. 'e; (or is that 'e:)?

Also, you can simplify the way you load the XML to:

[xml]$config = Get-Content "$aomsDir\$file"
Keith Hill
Thanks Keithm I'll simplify the loading of the config file as you suggested. I tried using a single quot but this didn't work as the configuration was then invalid. It's working with the linq entity framework so that's whay I need " in the connection string.
Alan
A: 

I think you should access the connection strings using the System.Configuration assembly. I wrote a post on how to encrypt connection strings when building a project, using powershell: Encrypt App.config section using PowerShell as a Post-build event. You will have to adapt it since your goal is not to encrypt, but it should help you.

Philippe
Thanks Philippe I'll try this and let you know how I get on.
Alan