4 Replies Latest reply on Mar 24, 2016 4:43 AM by Klaus Salger

    XML vom Export der Infrastruktur nicht mehr kompatibel

    SBRUTSCH Expert

      Hallo,

      vielleicht hat von euch jemand ein Tipp.

      Wir verwenden das XML Files des Infrastruktur Exports um Monitoring zu betreiben. Sprich, wir lesen aus dem XML File aus welche Server machen was um dann Dienste und Shares zu prüfen.

      Seit der DSM 2015.2 geht das nicht mehr. Beim einlesen des XML Files per PowerShell V3 kommt folgende Fehlermeldung:

       

      Der Wert "System.Object[]" kann nicht in den Typ "System.Xml.XmlDocument" konvertiert werden. Fehler: "' ', hexidezimaler Wert 0x05, ist ein ungültiges

      Zeichen. Zeile 2, Position 10631."

      In Zeile:1 Zeichen:1

      + $ncpxml = [xml](Get-Content "C:\Intel\export-2015.2.xml")

      + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

          + CategoryInfo          : InvalidArgument: (:) [], RuntimeException

          + FullyQualifiedErrorId : InvalidCastToXmlDocument

       

       

      Als PowerShell Befehl wird folgendes verwendet:

      $ncpxml = [xml](Get-Content "D:\Temp\export-2015.2.xml")

       

      Hat jemand von euch eine Idee was man da tun kann?

       

      Viele Grüße

      Stefan

        • 1. Re: XML vom Export der Infrastruktur nicht mehr kompatibel
          Klaus Salger Expert

          Hallo Stefan,

           

          ich vermute, dass sich nicht am Export-Format etwas geändert hat, sondern am Passwort eines DSM-internen Accounts.

          Während die Passwörter der Service Accounts nicht exportiert werden, gilt das für die internen Accounts nicht und die verschlüsselten Passwörter enthalten dann evtl. Zeichen, die an der Stelle in XML eigentlich nicht erlaubt sind.

           

          Testweise kannst Du Dein XML also einfach mal mit einem Editor aufmachen und Zeile 2, Position 10631 bzw. das ganze Value durch erlaubte Zeichen ersetzen.

          Dann sollte die Konvertierung funktionieren.

           

          Wenn das so passt, könntest Du das Textfile in Deinem Powershell Script nach dem Einlesen und vor der Konvertierung in XML bearbeiten.

          Z.B. per Regex die Section Passwords entfernen, die brauchst Du ja vermutlich nicht.

           

          Ciao

            Klaus

          1 of 1 people found this helpful
          • 2. Re: XML vom Export der Infrastruktur nicht mehr kompatibel
            SBRUTSCH Expert

            Hallo Klaus,

            ich gehe auch davon aus das es mit der neuen Verschlüsselung zu tun hat.

            Für einen automatischen Prozess ist das raus nehmen von Passwörtern ohne einlesen der XML Datei etwas schwierig. Und einlesen geht zumindest im XML Format eben nicht mehr.

             

            Ich werde es auf jeden Fall mal probieren was da dann raus kommt wenn ich den Wert Passwort raus lösche.

             

            Viele Grüße

            Stefan

            • 3. Re: XML vom Export der Infrastruktur nicht mehr kompatibel
              SBRUTSCH Expert

              Hi,

              es ist wie du vermutet hast. Alle in der Infrastruktur definierten Accounts werden mit eigenartigen Zeichen im Passwortwert exportiert. Löscht man die Passwort Werte geht es wieder ohne Probleme.

               

              Ich hoffe das HEAT das wieder ändert.

               

              Viele Grüße

              Stefan

              • 4. Re: XML vom Export der Infrastruktur nicht mehr kompatibel
                Klaus Salger Expert

                Hallo Stefan,

                 

                ja, früher waren die Passwörter auch der internen Accounts **HIDDEN**. Ich weiß nicht, wann sich das geändert hat. In der 2015.1 stehen die verschlüsselten Passwörter jedenfalls auch schon drin.

                 

                Als Workaround wird man das aber wie gesagt auch so wie es ist per Powershell loswerden können - VOR dem Cast in ein XML-Objekt, also noch als reinen Text, z.B. so:

                 

                $ncptxt = Get-Content -LiteralPath 'D:\Temp\export-2015.2.xml'

                $ncptxt = $ncptxt -replace '(<SECTION value="Passwords">.+?<\/SECTION>)','<!-- password section has been replaced -->'

                $ncpxml = [xml] $ncptxt

                 

                In dem Beispiel wird die Passwords Sections komplett durch den Kommentar ersetzt.

                 

                Solltest Du dazu ein Ticket aufmachen, dann könntest Du Dir auch gleich noch wünschen, dass auch die Konfiguration der Management Points mit exportiert wird.

                Dann könnte die Kollegen das gleich in einem Aufwasch mit machen

                 

                Ciao

                  Klaus