Matrix42 Empirum XML Datei lesen
Wir haben schon in vielen vorherigen Beiträgen über Empirum berichtet. Heute geht es darum, wie man mit Empirum XML Datei lesen kann. Seit der Version 14 ist es Empirum möglich Werte und Daten aus einer XML Datei lesen zu können. Natürlich könnte man diese Werte danach in eine Variable speichern. Mit dem Befehl ReadXmlText
lässt sich das ganz einfach umsetzen. Doch was wenn eine Mehrfach-Auswahl vorliegt? Wir zeigen es euch.
Empirum XML Datei lesen
Das Lesen einer XML Datei ist mit Empirum seit der Version 14 kein Problem mehr. Man kann direkt die Blöcke anfassen und auswerten. Die Daten lassen sich danach auch gleich in eine Variable schrieben, was zur weiteren Verwendung sehr nützlich ist. Der Aufbau der Syntax ist allerdings ein wenig gewöhnungsbedürftig. Hier werden die einzelnen Datensätze mit einem Slash getrennt.
Als Grundlage dieser Anleitung verwende ich die Empirum AgentConfig.xml, welche unter “C:\Windows\System32\Empirum” liegt. Natürlich kann man auch jede andere XML Datei auslesen, man muss nur den korrekten Pfad angeben. Diese XML hat folgenden Aufbau:
<?xml version="1.0" encoding="utf-8"?> <AgentTemplate Description="" Name="Agentkonfig" Version="19.0.0.34"> <Transport> <Protocols> <CommonParameters> <MinBandwidth>0</MinBandwidth> <Servername>server.your.domain</Servername> <Throttling>100</Throttling> <LocalDirPackage Platform="Windows">%Systemdrive%\EmpirumAgent\Packages</LocalDirPackage> <LocalDirPackage Platform="MacOS">/Library/Caches/EmpirumAgent/Packages</LocalDirPackage> </CommonParameters> </Protocols> </Transport> </Agent Template>
(Auszug AgentConfig.xml)
In einem früheren Beitrag haben wir erklärt, wie man Empirum Variablen definiert. Diese Funktion nutzen wir und lassen die gelesenen Daten der XML direkt in die Variable schrieben. Um den Servernamen zu lesen benötigen wir folgenden Befehl:
Set CurrentServerName=ReadXmlText("%System%\Empirum\AgentConfig.xml","/AgentTemplate/Transport/Protocols/CommonParameters/Servername")
Das war schon mal sehr einfach. Doch den Abschnitt “LocalDirPackage” haben wir doppelt mit verschiedenen Plattformen. Hier muss der Befehl noch angepasst und erweitert werden.
Set WindowsPackage=ReadXmlText("%System%\Empirum\AgentConfig.xml","/AgentTemplate/Transport/Protocols/CommonParameters/LocalDirPackage[@Platform='Windows']")
Mit der Erweiterung “[@Platform=’Windows’]” weiß Empirum, dass nur der Abschnitt mit der Plattform Windows gelesen werden soll.
Um zu Überprüfen, ob die Daten aus dem XML File korrekt gelesen wurden, kann man einen einfachen ECHO-Befehl nutzen:
ECHO %CurrentServerName%