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.
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)
EDIT: Nach dem Script sieht es folgendermaßen aus: ( Dank geht an didi1954 )
Es müssen also nur noch die Sonderzeichen am Ende jedes Zeilenumbruchs verschwinden. Ich habe es folgendermaßen gelöst.
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)
Im Java Control Panel >> im Reiter "Sicherheit" auf den Button "Zertifikate..."
Im Reiter "Benutzer"
Zertifikatstyp: Vertrauenswürdige Zertifikate + Sichere Site
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>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
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.
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)
EDIT: Nach dem Script sieht es folgendermaßen aus: ( Dank geht an didi1954 )
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 = "
"
strFileContent = objRegExp.Replace(strFileContent, "")
Set objFile = objFSO.OpenTextFile(strFilename, 2)
objFile.Write strFileContent
objFile.Close
Danach soll die fertige Datei importiert werden (Am besten silent per script)
Im Java Control Panel >> im Reiter "Sicherheit" auf den Button "Zertifikate..."
Im Reiter "Benutzer"
Zertifikatstyp: Vertrauenswürdige Zertifikate + Sichere Site
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>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 150715
Url: https://administrator.de/contentid/150715
Ausgedruckt am: 25.11.2024 um 21:11 Uhr
20 Kommentare
Neuester Kommentar
Hallo Memphis81!
Hier mal ein Ansatz für den Zertifikat-Export in VB-Script (*.vbs):
Gruß Dieter
[edit] Codezeile 32 geändert (bleibt doch == am Ende stehen)[/edit]
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]
Hallo Memphis81!
Sorry , 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 habe
Gruß Dieter
Sorry , 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 habe
Gruß Dieter
Hallo Memphis81!
OK, aber das hätte man ja auch gleich vor dem Export erledigen können. Allerdings habe ich noch nicht verstanden, wo die "
" 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 sinnvoll
Gruß Dieter
OK, aber das hätte man ja auch gleich vor dem Export erledigen können. Allerdings habe ich noch nicht verstanden, wo die "
" 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 sinnvoll
Gruß Dieter
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:
Batch:
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.
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), "
", "")
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
@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"
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.
Hallo Martin!
Da bin ich mal gespannt, ob Ihr das hinkriegt
Gruß Dieter
Da bin ich mal gespannt, ob Ihr das hinkriegt
Gruß Dieter
Hallo Martin!
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 zusammenbebastelt
Gruß Dieter
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 sollDas 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
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 zusammenbebastelt
Gruß Dieter
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.
oder
Gruß Dieter
[edit] Code geändert [/edit]
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), "
", "")
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
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]
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
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
Hallo Michael!
Du hast jetzt freie Auswahl entweder im Zertikate-Export-Skript integriert oder als seperates Skript.
Gruß Dieter
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 funktionierenLeider 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).
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 "
", die laut Aussage von Martin erst im Notepad++ sichtbar waren"<RegisterClient PreferredGroup="My Company\Servers" PreferredMode="1"/>"
eingefügt werden soll.
Gruß Dieter
Hallo Dieter,
wunderbar, es funktioniert alles einwandfrei
Schön, dass es Leute wie dich gibt die Anderen bei solchen Problemen mit aller Kraft helfen und immer einen Tipp parat haben
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
Schöne Grüße und vielen Dank von meiner Seite aus.
Michael
wunderbar, es funktioniert alles einwandfrei
Schön, dass es Leute wie dich gibt die Anderen bei solchen Problemen mit aller Kraft helfen und immer einen Tipp parat haben
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
Schöne Grüße und vielen Dank von meiner Seite aus.
Michael
Hallo Michael!
Freut mich
Gruß Dieter
Freut mich
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 dazuJetzt 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
Würde mich freuenLösung veröffentlichen, so dass andere auch noch etwas davon haben
Schöne Grüße und vielen Dank von meiner Seite aus.
Yepp gern geschehenGruß Dieter
Hallo Martin!
Bei den beiden angegebenen Links hast Du allerdings 2 mal das gleiche Script zum Download bereitgestellt (CopyFile). Das nur so am Rande
Gruß Dieter
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 funktioniertSo... 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 =)
Bei den beiden angegebenen Links hast Du allerdings 2 mal das gleiche Script zum Download bereitgestellt (CopyFile). Das nur so am Rande
Gruß Dieter