The script works for multiple files because they are on subfolders of a common folder, e.g.
Mycompany --> My App 1
--> My App 2
--> My App 3
It will of course work from say, c:, if you have your apps in different places but it might take a while to run. It will not work if they are in different drives though.
Here's the script:
param ($path, $keyname, $value) if (-not($Path)) { write-host "Path is a mandatory parameter" break; } if (-not($keyname)) { write-host "KeyName is a mandatory parameter" break; } if (-not($value)) { write-host "value is a mandatory parameter" break; } $configfiles = ls -Path $path -Recurse -Include *config foreach ($config in $configfiles) { $doc = (Get-Content $config) -as [Xml] $obj = $doc.configuration.appSettings.add | where {$_.Key -eq $keyname} $obj.value = $value $doc.save($config) }Assuming the script has been named ChangeConfigFile.ps1, it can be invoked like this:
ChangeConfigFile.ps1 -path "c:\program files\Apps\" -keyname "Organization" -value "NewOrg"
No comments:
Post a Comment