memphis81
Goto Top

Textinhalt (Teilabschnitt) aus einer XML exportieren und in eine Datei einfügen

Ich habe verschiedene Scriptabfragen versucht doch nichts hat den nötigen Erfolg gebracht um mein Scriptproblem zu lösen.
Das liegt zum sicherlich zum Teil an meinen schlechten Scriptfähigkeiten ;) aber evt. auch an dem Vorhaben.
Ich hoffe die Administrator.de community kann da evt. weiterhelfen.

Hallo,

Wir wollen für ein internes Programm ein Java Zertifikat aus einem Teilabschnitt einer Datei (Sylink.xml) exportieren und danach in eine vorgefertigte Schablonendatei %Servername%.txt einfügen und dann in das JAVA Control Panel importieren.
Das alles am besten per script, es dürfen auch mehrere sein.. wichtig ist einfach nur der Automatismus. Die ganzen genannten Punkte müssen ohne das eingreifen eines Users erfolgen.
Den jeweiligen Computernamen wird per batch befehl entnommen um die Datei umbennant....später wird diese mit dem Exportierten Zertifikatsabschnitt befüllt.

Exportieren des Zertifikatsabschnitts:
Es handelt sich um die Datei Sylink.xml (benutzt von dem Programm "Symantec Endpoint Protection"
In der Sylink.xml befinden sich die Kommunikationseinstellungen des Servers für die Clients, zusätzlich enthält diese Datei aber auch eine Zertifikatsabfrage.

53d45a1bcf6e31c1fc37fefb365e07d3

Der spannende Abschnitt sieht folgendermaßen aus:
<Certificate Name="Servername">MIICQzCCAaygAwIBAgIES5Y3eTANBgkqhkiG9w0BAQUFADBmMQswCQYDVQQGEwJVUzELMAkGA1UE CBMCQ0ExEDAOBgNVBAcTB0ZyZW1vbnQxFTATBgNVBAoTDHN5bWFudGVjLmNvbTEMMAoGA1UECxMD c2NtMRMwEQYDVQQDEwp5ZWxsb3ctcGFkMB4XDTEwMDMwOTExNTY0MVoXDTIwMDMwNjExNTY0MVow ZjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRAwDgYDVQQHEwdGcmVtb250MRUwEwYDVQQKEwxz eW1hbnRlYy5jb20xDDAKBgNVBAsTA3NjbTETMBEGA1UEAxMKeWVsbG93LXBhZDCBnzANBgkqhkiG 9w0BAQEFAAOBjQAwgYkCgYEAvPBgIVLSkozFjPWTT8QkIm+bBVIFC0Nyeu0RarMJrVvI1z3Vkzya tzSPkffMbjnP8mK/iLf3iZ5C40MB1hmmPvKa36o8xcDyeXcYLUvYBqwiP+q4Y9ufOSBEPUWD272x lMOGiitdV1UuQx+Hy41JXXN12M6E0VypOnk5gAjoZtECAwEAATANBgkqhkiG9w0BAQUFAAOBgQC5 26ZsiMFIEg7KQa33/18fG3KQKHZbIGDkT6NxrX55nK9TGnoytvANHTcDiM1caovv3busigebOz3d G8K5fJKcbYEWZ7+qd6wu8WT3xPB5qeUQR/YsDJBB+b+psRq+vT9GiVGwsTl5pXItlyltr53DD+zb jAK+s6K0ZwBqTD0ZmA==</Certificate>

Diesen Abschnitt würden wir gerne exportieren:
MIICQzCCAaygAwIBAgIES5Y3eTANBgkqhkiG9w0BAQUFADBmMQswCQYDVQQGEwJVUzELMAkGA1UE CBMCQ0ExEDAOBgNVBAcTB0ZyZW1vbnQxFTATBgNVBAoTDHN5bWFudGVjLmNvbTEMMAoGA1UECxMD c2NtMRMwEQYDVQQDEwp5ZWxsb3ctcGFkMB4XDTEwMDMwOTExNTY0MVoXDTIwMDMwNjExNTY0MVow ZjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRAwDgYDVQQHEwdGcmVtb250MRUwEwYDVQQKEwxz eW1hbnRlYy5jb20xDDAKBgNVBAsTA3NjbTETMBEGA1UEAxMKeWVsbG93LXBhZDCBnzANBgkqhkiG 9w0BAQEFAAOBjQAwgYkCgYEAvPBgIVLSkozFjPWTT8QkIm+bBVIFC0Nyeu0RarMJrVvI1z3Vkzya tzSPkffMbjnP8mK/iLf3iZ5C40MB1hmmPvKa36o8xcDyeXcYLUvYBqwiP+q4Y9ufOSBEPUWD272x lMOGiitdV1UuQx+Hy41JXXN12M6E0VypOnk5gAjoZtECAwEAATANBgkqhkiG9w0BAQUFAAOBgQC5 26ZsiMFIEg7KQa33/18fG3KQKHZbIGDkT6NxrX55nK9TGnoytvANHTcDiM1caovv3busigebOz3d G8K5fJKcbYEWZ7+qd6wu8WT3xPB5qeUQR/YsDJBB+b+psRq+vT9GiVGwsTl5pXItlyltr53DD+zb jAK+s6K0ZwBqTD0ZmA=

und danach in eine vorgefertigte File einfügen, diese Datei heißt in unserem Bsp. einfach nur "Servername.txt"

Die Schablone sieht folgendermaßen aus:
BEGIN CERTIFICATE-----
(leeres Feld, für den später eingefügten Text aus der Sylink.xml)
END CERTIFICATE-----

Nachdem der richtige Abschnitt exportiert wurde und in unsere Datei importiert wurde, muss sie folgendermaßen aussehen:
BEGIN CERTIFICATE-----
Der eingefügte Zertifikatsabschnitt aus der Sylink.xml, siehe Bild
END CERTIFICATE-----
Die Zeilenümbrüche müssen exakt stimmen sonst ist die Datei in die java runtime nicht zu importieren (Es erscheint eine Fehlermeldung)
5a5c1a9dab6f7dd1b6322917e8b9f5c5

EDIT: Nach dem Script sieht es folgendermaßen aus: ( Dank geht an didi1954 )
38b4aae9d76e09621ffec26874caa676


Es müssen also nur noch die Sonderzeichen am Ende jedes Zeilenumbruchs verschwinden. Ich habe es folgendermaßen gelöst.
strFilename = "Servername.txt"  
Set objFSO = CreateObject("Scripting.FileSystemObject")  
Set objFile = objFSO.GetFile(strFilename)
intFileSize = objFile.Size
Set objFile = objFile.OpenAsTextStream()
strFileContent = objFile.Read(intFileSize)
objFile.Close

Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = True             'False für case-sensitive  
strFileContent = objRegExp.Replace(strFileContent, "")  
objRegExp.Pattern = "&#xd;"  
strFileContent = objRegExp.Replace(strFileContent, "")  
Set objFile = objFSO.OpenTextFile(strFilename, 2)
objFile.Write strFileContent
objFile.Close
Damit ist dieses Problem vom Tisch und es bleibt nur noch die Importierung in das Java Control Panel per Script. :D


Danach soll die fertige Datei importiert werden (Am besten silent per script)

cb37125aaec4c026f0295b02c32ce516

Im Java Control Panel >> im Reiter "Sicherheit" auf den Button "Zertifikate..."
Im Reiter "Benutzer"
Zertifikatstyp: Vertrauenswürdige Zertifikate + Sichere Site

cb37125aaec4c026f0295b02c32ce516


Es wäre evt. möglich mit dem keytool von java (im bin installationsverzeichnis) zu arbeiten.

echo === Keytool im Java Verzeichnis benutzen ===
D:\Programme\Java\jre6\bin
keytool -import -trustcacerts -alias <alias-name> -file c:\SEPMinst\%computername%.txt -keystore cacerts

Das Problem hier wiederrum wäre das die Datei %Computername%.txt eine Variable bleiben muss und keinen festen Namen haben darf. Das Script muss für jeden Rechner gehen und nicht nur für einen einzigen.
Durch die echo %computername% Abfrage könnte das Script sozusagen auch den Namen dann erfahren und eintragen.


<<<<<<<<<<<<<<<<<<>>>LÖSUNG>>>>>>>>>>>>>>>>>>>>>>>>>>

Hier die Scripts zum anschauen:
Export Script
Copy Script


Nachdem wir das Zertifikat soweit vorbereitet haben (Text exportiert/importiert) musste es noch in den Zertifikatsspeicher (Vertrauenswürdige Stammzertifizierungsstellen) importiert werden:
Um diesen Vorgang zu automatisieren, haben wir folgenden Befehl benutzt.
certutil -f -addstore -enterprise root C:\SEPMinst\Export.cer

Das alles zusammen in ein Ablaufendes *.vbs zusammenfügen, in den f.e. autostart hinterlegen und fertig ist unser Automatismus =)

<<<<<<<<<<<<<<<<<<>>>ENDE>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Content-Key: 150715

Url: https://administrator.de/contentid/150715

Printed on: April 18, 2024 at 09:04 o'clock

Mitglied: 76109
76109 Sep 09, 2010 at 17:43:13 (UTC)
Goto Top
Hallo Memphis81!

Hier mal ein Ansatz für den Zertifikat-Export in VB-Script (*.vbs):
Const XmlPath = "E:\Test\Import.xml"  
Const TxtPath = "E:\Test\Export.txt"  

Const TextBefore = "-----BEGIN CERTIFICATE-----"  
Const TextAfter = "-----END CERTIFICATE-----"  

Const Msg0 = "Das Zertifikat wurde erfolgreich exportiert."  
Const Msg1 = "Das Zertifikat konnte nicht exportiert werden!"  

Dim Re, Fso, XmlFile, TxtFile, ImportText, ExportText, Text

Set Re = New RegExp
Set Fso = CreateObject("Scripting.FileSystemObject")  
    
Set XmlFile = Fso.OpenTextFile(XmlPath)
    
ImportText = XmlFile.ReadAll:  XmlFile.Close
    
With Re
   .Global = False
   .IgnoreCase = True
   .Pattern = "<Certificate Name=[^>]+>([^<]*)</Certificate>"  
End With
    
With Re.Execute(ImportText)
    If .Count = 1 Then
        With .Item(0).Submatches
            If .Count = 1 Then
                ExportText = Fso.OpenTextFile(TxtPath).ReadAll
                    
                Text = Split(ExportText, TextBefore)(0) & TextBefore & vbCrLf
                Text = Text & .Item(0) & vbCrLf
                Text = Text & TextAfter & Split(ExportText, TextAfter)(1)
                    
                Set TxtFile = Fso.CreateTextFile(TxtPath)
                    
                TxtFile.Write Text:  TxtFile.Close
                    
                MsgBox Msg0, vbInformation, "Meldung"  
            Else
                MsgBox Msg1, vbExclamation, "Fehler"  
            End If
        End With
    Else
        MsgBox Msg1, vbExclamation, "Fehler"  
    End If
End With

Gruß Dieter

[edit] Codezeile 32 geändert (bleibt doch == am Ende stehen)[/edit]
Member: Memphis81
Memphis81 Sep 10, 2010 at 08:08:02 (UTC)
Goto Top
Vielen Dank Dieter für dein Script, welches auch funktioniert (fast...)

Ich habe oben meinen Text editiert und ein Bild eingefügt nachdem dein Script in Benutzung war.
Das einzige was jetzt noch Probleme macht sind die Sonderzeichen,am Ende jedes Zeilenumbruchs...
Diese dürfen nicht mit exportiert/importiert werden bzw. sie müssen danach wieder entfernt werden aus der servername.txt

> &#xd;
Diese Zeichen müssen weg, danach wäre das Thema dann bereits durch. Wäre dann nur noch die Java Importierung.

Grüße...
Martin
Mitglied: 76109
76109 Sep 10, 2010 at 08:29:32 (UTC)
Goto Top
Hallo Memphis81!

Sorry face-sad, habe leider übersehen, dass der Text UTF8-kodiert ist. Mein Script war bedauerlicherweise auf Ansi-Text ausgelegt. Von daher muss ich mir das Ganze nochmal anschauen und überarbeiten. Kann aber etwas dauern, weil ich noch wichtige Termine habeface-wink

Gruß Dieter
Member: Memphis81
Memphis81 Sep 10, 2010 at 09:01:00 (UTC)
Goto Top
Zitat von @76109:
Hallo Memphis81!

Sorry face-sad, habe leider übersehen, dass der Text UTF8-kodiert ist. Mein Script war bedauerlicherweise auf Ansi-Text ausgelegt.
Von daher muss ich mir das Ganze nochmal anschauen und überarbeiten. Kann aber etwas dauern, weil ich noch wichtige Termine
habeface-wink

Gruß Dieter

Passt schon Dieter, ich konnte das schon beheben =)
strFilename = "Servername.txt"  
Set objFSO = CreateObject("Scripting.FileSystemObject")  
Set objFile = objFSO.GetFile(strFilename)
intFileSize = objFile.Size
Set objFile = objFile.OpenAsTextStream()
strFileContent = objFile.Read(intFileSize)
objFile.Close

Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = True             'False für case-sensitive  
strFileContent = objRegExp.Replace(strFileContent, "")  
objRegExp.Pattern = "&#xd;"  
strFileContent = objRegExp.Replace(strFileContent, "")  
Set objFile = objFSO.OpenTextFile(strFilename, 2)
objFile.Write strFileContent
objFile.Close
Hier das script was ich benutzt habe um die sonderzeichen zu entfernen ^^

Bleibt also nur noch die Importierung dieser Datei in das Java Control Panel... per Script automatisiert natürlich. Per hand funktoniert es bereits, habe es vorhin schon durchgetestet!
Ich überlege ob ich nicht einen Thread in Java deshalb lieber öffnen soll...

Grüße
Martin
Member: Memphis81
Memphis81 Sep 10, 2010 at 09:44:39 (UTC)
Goto Top
Zum Thema Java Import:

Es wäre evt. möglich mit dem keytool von java (im bin installationsverzeichnis) zu arbeiten.
echo === Keytool im Java Verzeichnis benutzen ===
D:\Programme\Java\jre6\bin
keytool -import -trustcacerts -alias <alias-name> -file c:\SEPMinst\%computername%.txt -keystore cacerts
Ich habe selber noch nicht ganz verstanden was jetzt im <alias-name> stehen muss (evt. der computername???)
Das Problem hier wiederrum wäre das die Datei %Computername%.txt eine Variable bleiben muss und keinen festen Namen haben darf.
Das Script muss für jeden Rechner gehen und nicht nur für einen einzigen.
Durch die echo %computername% Abfrage könnte das Script sozusagen auch den Namen dann erfahren und eintragen.

Das script müsste sich dann ja auch 2x ausführen um in die beiden unterschiedlichen Bereiche im Java Control Panel zu installieren...
Wenn wir das hinkriegen.... Wär' a Traum :p
Mitglied: 76109
76109 Sep 10, 2010 at 10:49:44 (UTC)
Goto Top
Hallo Memphis81!

Zitat von @Memphis81:
Passt schon Dieter, ich konnte das schon beheben =)

OK, aber das hätte man ja auch gleich vor dem Export erledigen können. Allerdings habe ich noch nicht verstanden, wo die "&#xd;" herkommen?

Bei Deinem weiteren Problem kann ich Dir leider nicht weiterhelfen, da ich von Java, Null Ahnung habe bzw. mich nicht damit beschäftige. Von daher wäre ein neuer Thread durchaus sinnvollface-wink

Gruß Dieter
Member: Memphis81
Memphis81 Sep 10, 2010 at 14:08:15 (UTC)
Goto Top
OK, aber das hätte man ja auch gleich vor dem Export erledigen können. Allerdings habe ich noch nicht verstanden, wo die

Scheint wirklich ein Formatierungsproblem zu sein. Wenn die Sylink.xml in einem ie geöffnet wird dann sieht es gut aus, wenn ich es in notepad++ z.B. öffne dann erscheinen die sonderzeichen dort auch...
Auf jeden Fall ist ja das Problem vom Tisch... bleibt nur noch das Importieren in die beiden Bereiche von dem Java Control Panel...

Danke dir für die Ünterstützung!!!

Martin
Mitglied: 76109
76109 Sep 11, 2010 at 14:26:20 (UTC)
Goto Top
Hallo Martin!

Es wird wohl nicht ganz so funktionieren, wie Du Dir das vorgestellt hast?

Um mit Keytool ein Zertifikat installieren zu können, darf in der Zertifikat-Datei nur der Teil von "-----BEGIN CERTIFICATE-----" bis "-----END CERTIFICATE-----" stehen. Ansonsten kommt eine Fehlermeldung "Keine Zertifikat-Datei", sowas in der Art. Von daher habe ich ein neues Skript gebastelt

Das VB-Skript exportiert das Zertifikat in die Datei "Export.cer" und im nachfolgende Batch-Skript wird das Zertifikat mit "Keytool -import" installiert. Eine entsprechende Meldung wird auch angezeigt und nach der Pause mit "Keytool -delete" zu Testzwecken wieder gelöscht. Allerdings, was ich auch nicht ganz verstehe, wird das Zertifikat nicht im ControlPaneel angezeigt?

Der Alias-Name kann beliebig sein und darf nur einmalig für ein Zertifikat benutzt werden. Der Alias-Name wird z.B. auch beim Löschen als Ansprechname verlangt.

VBS:
Const XmlPath = "E:\Test\Import.xml"  
Const CerPath = "E:\Test\Export.cer"  

Const Msg0 = "Das Zertifikat wurde erfolgreich exportiert."  
Const Msg1 = "Das Zertifikat konnte nicht exportiert werden!"  

Dim Re, Fso, XmlFile, CerFile, XmlText, CerText

Set Re = New RegExp
Set Fso = CreateObject("Scripting.FileSystemObject")  
    
Set XmlFile = Fso.OpenTextFile(XmlPath)

XmlText = XmlFile.ReadAll:  XmlFile.Close
    
With Re
   .Global = False
   .IgnoreCase = True
   .Pattern = "<Certificate Name=[^>]+>([^<]*)</Certificate>"  
End With
                                                          
With Re.Execute(XmlText)
    If .Count = 1 Then
        With .Item(0).Submatches
            If .Count = 1 Then
                CerText = Replace(.Item(0), "&#xd;", "")  
                  
                Set CerFile = Fso.CreateTextFile(CerPath)

                With CerFile
                    .WriteLine "-----BEGIN CERTIFICATE-----"  
                    .Write CerText & vbCrLf
                    .WriteLine "-----END CERTIFICATE-----"  
                    .Close
                End With
                   
                MsgBox Msg0, vbInformation, "Meldung"  
            Else
                MsgBox Msg1, vbExclamation, "Fehler"  
            End If
        End With
    Else
        MsgBox Msg1, vbExclamation, "Fehler"  
    End If
End With
Batch:
@echo off

::32Bit
Set "JavaBin=C:\Program Files (x86)\Java\jre6x32\bin"  
Set "JavaSec=C:\Program Files (x86)\Java\jre6x32\lib\security"  
Set "JavaCer=E:\Test"  

::64Bit
::Set "JavaBin=C:\Program Files\Java\jre6x64\bin" 
::Set "JavaSec=C:\Program Files\Java\jre6x64\lib\security" 
::Set "JavaCer=E:\Test" 

"%JavaBin%\keytool" -import -v -noprompt -trustcacerts -alias "Test" -file "%JavaCer%\Export.Cer" -keystore "%JavaSec%\Test.jks" -storepass "Passwort"  

Pause

"%JavaBin%\keytool" -delete -alias "Test" -keystore "%JavaSec%\Test.jks" -storepass "Passwort"  
Eventuell muss auch noch der Parameter [-keypass "Passwort"] angegeben werden.
Der Parameter [-noprompt] unterdrückt die Abfrage, ob das Zertifikat als sicher eingestuft wird.
Anstelle von [-keystore "%JavaSec%\Test.jks"] kannst Du auch [-keystore "%JavaSec%\cacerts"] verwenden. In der Datei cacerts sind wohl die Zertifate JavaFX Runtime (ControlPaneel) enthalten.

Gruß Dieter

PS. Im ersten Code Codezeile 32 geändert.
Member: Memphis81
Memphis81 Sep 12, 2010 at 20:26:54 (UTC)
Goto Top
Doch, doch es soll nach dem Import im Java Control Panel angezeigt werden =)
Vielen Dank für deine Mühe, ich freue mich auf Mittwoch wenn ich selber Hand anlegen darf!

oh mann.... Schade das ich morgen und übermorgen nicht im büro bin um alles auszuprobieren (extern tätig)... Ich werde das an einen meiner kollegen weiterleiten.

Daumen hoch und big thx Dieter =)
Mitglied: 76109
76109 Sep 13, 2010 at 05:49:02 (UTC)
Goto Top
Hallo Martin!

Da bin ich mal gespannt, ob Ihr das hinkriegt face-smile

Gruß Dieter
Member: Memphis81
Memphis81 Sep 16, 2010 at 09:29:50 (UTC)
Goto Top
Das importieren klappt bereits... nur ein problem bislang... keine Ahnung wo das Zertifikat importiert wird :p Ich bin gerade dabei heraus zu suchen im oracle forum welchen command keytool benötigt und das in den richtigen Reiter zu importieren.


JAVA Control Panel > Sicherheit (Security) > Zertifikate (Certificates) > Typ: Vertrauenswürdige Zertifikate & Sichere Site
In die beiden Kategorien sollen die Importe erfolgreich auftauchen
Mitglied: 76109
76109 Sep 16, 2010 at 10:22:55 (UTC)
Goto Top
Hallo Martin!

Zitat von @Memphis81:
Das importieren klappt bereits... nur ein problem bislang... keine Ahnung wo das Zertifikat importiert wird :p Ich bin gerade
dabei heraus zu suchen im oracle forum welchen command keytool benötigt und das in den richtigen Reiter zu importieren.

JAVA Control Panel > Sicherheit (Security) > Zertifikate (Certificates) > Typ: Vertrauenswürdige Zertifikate &
Sichere Site
In die beiden Kategorien sollen die Importe erfolgreich auftauchen
Tja, da bin ich auch nicht weiterkommen und habe beim besten Willen keine Ahnung, wie das gehen sollface-sad

Eventuell helfen Dir auch diese Links weiter:
http://www.torsten-horn.de/techdocs/ssl.htm
http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
http://shib.kuleuven.be/docs/ssl_commands.shtml#keytool

Anhand dieser Links, habe ich die CMD-Line zusammenbebasteltface-wink

Gruß Dieter
Mitglied: 76109
76109 Sep 27, 2010 at 17:53:42 (UTC)
Goto Top
Hallo Michael!

Bezugnehmend auf die PN vom 27.09. habe ich die Einfügfunktion in das letzte Zertifikat-Export-Skript vom 11.09. mit eingebaut.

Neu hinzugekommen sind die Codezeilen 4/5 und/oder geändert sind die Codezeilen 15-23.

Der Tag in Codezeile 4 (TextReplace) wird in der Xml-Datei durch die Codezeile 5 (TextInsert) ersetzt.
Const XmlPath = "E:\Test\Import.xml"  
Const CerPath = "E:\Test\Export.cer"  

Const TextReplace = "</CommConf>"  
Const TextInsert =  "<RegisterClient PreferredGroup=""My Company\Servers"" PreferredMode=""1""/>"  

Const Msg0 = "Das Zertifikat wurde erfolgreich exportiert."  
Const Msg1 = "Das Zertifikat konnte nicht exportiert werden!"  

Dim Re, Fso, XmlFile, CerFile, XmlText, CerText, NewText

Set Re = New RegExp
Set Fso = CreateObject("Scripting.FileSystemObject")  
    
Set XmlFile = Fso.OpenTextFile(XmlPath)

XmlText = XmlFile.ReadAll

NewText = TextInsert &  vbCrLf & "</CommConf>"  

XmlText = Replace(XmlText, TextReplace, NewText, 1 , -1, vbTextCompare)
    
Set XmlFile = Fso.CreateTextFile(XmlPath)
    
XmlFile.Write XmlText:  XmlFile.Close
	
With Re
   .Global = False
   .IgnoreCase = True
   .Pattern = "<Certificate Name=[^>]+>([^<]*)</Certificate>"  
End With
                                                          
With Re.Execute(XmlText)
    If .Count = 1 Then
        With .Item(0).Submatches
            If .Count = 1 Then
                CerText = Replace(.Item(0), "&#xd;", "")  
                  
                Set CerFile = Fso.CreateTextFile(CerPath)

                With CerFile
                    .WriteLine "-----BEGIN CERTIFICATE-----"  
                    .Write CerText & vbCrLf
                    .WriteLine "-----END CERTIFICATE-----"  
                    .Close
                End With
                   
                MsgBox Msg0, vbInformation, "Meldung"  
            Else
                MsgBox Msg1, vbExclamation, "Fehler"  
            End If
        End With
    Else
        MsgBox Msg1, vbExclamation, "Fehler"  
    End If
End With
oder
Const XmlPath = "E:\Test\Import.xml"  

Const TextReplace = "</CommConf>"  
Const TextInsert =  "<RegisterClient PreferredGroup=""My Company\Servers"" PreferredMode=""1""/>"  

Dim Fso, XmlFile, XmlText, NewText

Set Fso = CreateObject("Scripting.FileSystemObject")  
    
Set XmlFile = Fso.OpenTextFile(XmlPath)

XmlText = XmlFile.ReadAll

NewText = TextInsert &  vbCrLf & TextReplace

XmlText = Replace(XmlText, TextReplace, NewText, 1 , -1, vbTextCompare)
    
Set XmlFile = Fso.CreateTextFile(XmlPath)
    
XmlFile.Write XmlText:  XmlFile.Close

Gruß Dieter

[edit] Code geändert [/edit]
Member: Dexter91
Dexter91 Sep 28, 2010 at 07:09:31 (UTC)
Goto Top
Hallo Dieter,

vielen Dank für deine erneute schnelle Hilfe.

Leider scheint das Script nicht zu funktionieren.
Es erscheint eine Fehlermeldung, welche besagt, dass im Code bei Zeile 19 ein Fehler aufgetreten ist (Fehler: Typen unverträglich).

Hättest du da eine Idee woran es liegen könnte?

Da ich nicht so gut im Programmieren bin und das Script doch recht umfangreich ist und ehrlich gesagt auch mehr kann als es sollte, wäre ich sehr froh, wenn du da noch einmal drüber gucken könntest.

Vielleicht könnte man das Script auch vereinfachen, denn es soll einzig und alleine den Textabschnitt "<RegisterClient PreferredGroup="My Company\Servers" PreferredMode="1"/>" zwischen der Zeile "<LogSetting MaxLogRecords="100" SendingLogAllowed="1" UploadProcessLog="1" UploadRawLog="1" UploadSecurityLog="1" UploadSystemLog="1" UploadTrafficLog="1"/>" und der Zeile "</CommConf>" schreiben und darauf die bearbeitete SyLink.xml wieder abspeichern.

Das Bild der SyLink.xml ist oben im Beitrag im Originalzustand mit den beiden Zeilen zu finden, zwischen denen die Zeile "<RegisterClient PreferredGroup="My Company\Servers" PreferredMode="1"/>" eingefügt werden soll.

Schönen Gruß

Michael
Mitglied: 76109
76109 Sep 28, 2010 at 09:00:03 (UTC)
Goto Top
Hallo Michael!

Zitat von @Dexter91:
Leider scheint das Script nicht zu funktionieren.
Es erscheint eine Fehlermeldung, welche besagt, dass im Code bei Zeile 19 ein Fehler aufgetreten ist (Fehler: Typen
unverträglich).
Sorry, da habe ich leider was übersehen. Den letzten Code habe ich entsprechend geändert und sollte jetzt funktionierenface-wink
Du hast jetzt freie Auswahl entweder im Zertikate-Export-Skript integriert oder als seperates Skript.
Das Bild der SyLink.xml ist oben im Beitrag im Originalzustand mit den beiden Zeilen zu finden, zwischen denen die Zeile
"<RegisterClient PreferredGroup="My Company\Servers" PreferredMode="1"/>"
eingefügt werden soll.
Originalzustand stimmt wohl nicht ganz, denn da war doch noch die Sache mit den "&#xd;", die laut Aussage von Martin erst im Notepad++ sichtbar warenface-smile

Gruß Dieter
Member: Dexter91
Dexter91 Sep 28, 2010 at 09:08:05 (UTC)
Goto Top
Hallo Dieter,

wunderbar, es funktioniert alles einwandfrei face-smile
Schön, dass es Leute wie dich gibt die Anderen bei solchen Problemen mit aller Kraft helfen und immer einen Tipp parat haben face-smile

Jetzt werde ich alles mal zusammen basteln und es genauestens testen und danach dann in den nächsten Tagen die komplette Lösung veröffentlichen, so dass andere auch noch etwas davon haben face-smile

Schöne Grüße und vielen Dank von meiner Seite aus.

Michael
Mitglied: 76109
76109 Sep 28, 2010 at 09:26:46 (UTC)
Goto Top
Hallo Michael!

Zitat von @Dexter91:
wunderbar, es funktioniert alles einwandfrei face-smile
Freut michface-smile
Schön, dass es Leute wie dich gibt die Anderen bei solchen Problemen mit aller Kraft helfen und immer einen Tipp parat haben
So bleibt man selbst im Training und lernt auch dazuface-wink
Jetzt werde ich alles mal zusammen basteln und es genauestens testen und danach dann in den nächsten Tagen die komplette
Lösung veröffentlichen, so dass andere auch noch etwas davon haben face-smile
Würde mich freuenface-wink
Schöne Grüße und vielen Dank von meiner Seite aus.
Yepp gern geschehenface-wink

Gruß Dieter
Member: Memphis81
Memphis81 Oct 15, 2010 at 12:22:39 (UTC)
Goto Top
So... wir sind damit durch =) Ich habe den text noch ein wenig aktualisiert und unsere fertigen Scripte hinzugefügt. Vielen Dank nochmal für deine Hilfe Dieter =)
Mitglied: 76109
76109 Oct 16, 2010 at 11:29:17 (UTC)
Goto Top
Hallo Martin!

Zitat von @Memphis81:
So... wir sind damit durch =) Ich habe den text noch ein wenig aktualisiert und unsere fertigen Scripte hinzugefügt. Vielen
Dank nochmal für deine Hilfe Dieter =)
Freut mich, dass es nun endlich doch noch funktioniertface-smile

Bei den beiden angegebenen Links hast Du allerdings 2 mal das gleiche Script zum Download bereitgestellt (CopyFile). Das nur so am Randeface-wink

Gruß Dieter
Member: Memphis81
Memphis81 Oct 20, 2010 at 10:30:39 (UTC)
Goto Top
Uuupssss!!!!! ^^ Da war wohl der Fehlerteufel "copy/paste am Werk" =)

*aktualisiert* =)