Hallo zusammen,
ich brauche einmal eure Hilfe! Ich habe ein PowerShell Script unter PSv3 entwickelt und in diesem nötigen Parameter in einer XML Datei ausgelagert, damit diese Parameter von Dritte angepasst werden können ohne dass diese im Script etwas ändern müssen. Außerdem will ich auch einige Parameter ändern und in die XML zurückschreiben können.
[xml] $conf = Get-Content -Path 'C:\blaBla\issJaMalEgal.xml'
Und hier noch die XML Datei (etwas vereinfacht):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><xml><metadata><version>1.0</version><release>2013-07-01</release><requireLicenseAcceptance>false</requireLicenseAcceptance></metadata><files></files><parameters><dateFormat>%Y-%m-%d</dateFormat><timeStampFormat>%Y-%m-%d %H:%M:%S</timeStampFormat><logPath>C:\Logs\</logPath><logFileExtension>.log</logFileExtension><computerName>default</computerName><downTimeDuration>180</downTimeDuration><services><name>service1</name><name>service2</name><name>service3</name></services><pause>60</pause><autoStartOkay>false</autoStartOkay><onReboot>false</onReboot></parameters></xml>
Auf dem Server, auf dem das Script laufen soll, läuft aber nur PSv2 und die XML Verarbeitung scheint unter v2 etwas Komplizierter bzw. Aufwändiger zu sein.
z.B ein einfacher Abruf eines Parameters unter v3:
$conf.xml.parameters.logPath
und unter v2 schein nur folgendes zu funktionieren:
$conf.SelectSingleNode('/xml/parameters/logPath').InnerText
Oder eine ForEach Schleife unter v3:
ForEach ($c in $conf.xml.parameters.services.name) {$c}
und unter v2:
ForEach($c in $conf.SelectSingleNode('/xml/parameters/services').ChildNodes) {$c.InnerText}
Das Ändern von Parametern und anschließende Zurückspeichern ins XML-File (siehe unten v3) hab ich noch gar net rausbekommen ob und wie es geht.
$conf.xml.parameters.computerName = Get-Content -Path 'env:computername' $conf.Save('C:\blaBla\issJaMalEgal.xml')
Mein Problem:
Wenn ich das Script jetzt auf die oben aufgeführte v2-Kompatible Notation umstelle wird mein Script doch sehr unübersichtlich. Kennt ihr vllt. eine einfachere Notation die unter v2 funktioniert oder habt ihr eine andere Idee?
Vielen Dank schon mal!
Cailore