Codeblock per VBscript in xml File einfügen
Hallo
Ich muss auf bestimmten Clients den Inhalt einer in xml geschriebenen Datei ergänzen.
Folgender Codeblock muss im xml unten an angegebener Stelle eingefügt werden. Kann mir jemand sagen, wie ich dies mit VBScript am besten löse?
Das File liegt unter "c:\documents and settings\user\application data\programmname\vpn\file.f5c" auf den Clients.
Danke im Voraus!
Ich muss auf bestimmten Clients den Inhalt einer in xml geschriebenen Datei ergänzen.
Folgender Codeblock muss im xml unten an angegebener Stelle eingefügt werden. Kann mir jemand sagen, wie ich dies mit VBScript am besten löse?
Das File liegt unter "c:\documents and settings\user\application data\programmname\vpn\file.f5c" auf den Clients.
Danke im Voraus!
' ///////////////////////////////////
<SITEM>
<ADDRESS>server.domain.neu</ADDRESS>
<USER></USER>
<ALIAS></ALIAS>
<ORIGIN>Server.domain.alt/Teil1</ORIGIN>
<SSL_CERT_AUTOLOGIN>0</SSL_CERT_AUTOLOGIN>
<SSL_CERT_LOGIN_TO_WEBTOP>0</SSL_CERT_LOGIN_TO_WEBTOP>
<PASSWORD></PASSWORD>
<OPTIONAL_FIELD></OPTIONAL_FIELD>
<SAVEPASSWORDS>NO</SAVEPASSWORDS>
</SITEM>
' ///////////////////////////////////
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<PROFILE VERSION="2.0">
<SERVERS TRUSTED="YES">
<SITEM>
<ADDRESS>Server.domain.alt/Teil1</ADDRESS>
<USER>Username</USER>
<ALIAS></ALIAS>
<ORIGIN>Server.domain.alt/Teil1</ORIGIN>
<SSL_CERT_AUTOLOGIN>1</SSL_CERT_AUTOLOGIN>
<SSL_CERT_LOGIN_TO_WEBTOP>1</SSL_CERT_LOGIN_TO_WEBTOP>
<PASSWORD></PASSWORD>
<OPTIONAL_FIELD></OPTIONAL_FIELD>
<SAVEPASSWORDS>NO</SAVEPASSWORDS>
</SITEM>
' ///////////////////////////////////
' Hier sollte der Codeblock eingefügt werden
' ///////////////////////////////////
</SERVERS>
<CUSTOMDIALER>
<ENTRY>
<NAME>Network Access</NAME>
<REDIALATTEMPTS>3</REDIALATTEMPTS>
<REDIALSECONDS>60</REDIALSECONDS>
<SHOWDIALINGPROGRESS>1</SHOWDIALINGPROGRESS>
<PREVIEWUSERPASSWORD>1</PREVIEWUSERPASSWORD>
<PREVIEWPHONENUMBER>1</PREVIEWPHONENUMBER>
<SHOWMONITORINTASKBAR>1</SHOWMONITORINTASKBAR>
</ENTRY>
etc.
etc.
etc.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 186529
Url: https://administrator.de/contentid/186529
Ausgedruckt am: 17.11.2024 um 13:11 Uhr
14 Kommentare
Neuester Kommentar
Hi!
Du musst das XML-File erst einmal in ein Array einlesen. und dann entsprechen wieder schreiben
hier ein kleines Besipiel:
Dim objShell : Set objShell = WScript.CreateObject("Wscript.Shell")
Dim objFso : Set objFso = WScript.CreateObject("Scripting.FileSystemObject")
Dim CDir : CDir = objFso.GetParentFolderName(WScript.ScriptFullName)
Dim arr
Set File = objFso.OpenTextFile("c:\a.txt", 1) '1 = zum Lesen
tmp = file.ReadAll
arr = Split(tmp, vbNewLine)
file.Close
i = 0
Set File = objFso.OpenTextFile("C:\a.txt", 2) '2 = zum Schreiben
Do
file.WriteLine arr(i)
If InStr(1, arr(i), "text4",1) Then
file.WriteLine "Noch was anderes"
End if
i = i +1
Loop Until i = UBound(arr)
file.Close
Du musst das XML-File erst einmal in ein Array einlesen. und dann entsprechen wieder schreiben
hier ein kleines Besipiel:
Dim objShell : Set objShell = WScript.CreateObject("Wscript.Shell")
Dim objFso : Set objFso = WScript.CreateObject("Scripting.FileSystemObject")
Dim CDir : CDir = objFso.GetParentFolderName(WScript.ScriptFullName)
Dim arr
Set File = objFso.OpenTextFile("c:\a.txt", 1) '1 = zum Lesen
tmp = file.ReadAll
arr = Split(tmp, vbNewLine)
file.Close
i = 0
Set File = objFso.OpenTextFile("C:\a.txt", 2) '2 = zum Schreiben
Do
file.WriteLine arr(i)
If InStr(1, arr(i), "text4",1) Then
file.WriteLine "Noch was anderes"
End if
i = i +1
Loop Until i = UBound(arr)
file.Close
@mayho33
... wobei es sich eher anbieten würde, auf die zeilenweise Zerlegung zu verzichten:
@RetroDude
Durch die Zeilen 1 und 2 sollte das dann als Logon-Script verwendbar sein.
Zu beachten wäre noch, dass in dieser Version keine Sicherungskopie der alten Datei erstellt wird!
Grüße
bastla
... wobei es sich eher anbieten würde, auf die zeilenweise Zerlegung zu verzichten:
AppData = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%APPDATA%")
FilePath = AppData & "\programmname\vpn\file.f5c"
SplitString = "</SERVERS>"
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists(FilePath) Then WScript.Quit
XML = fso.OpenTextFile(FilePath).ReadAll
If InStr(XML, SplitString) = 0 Then WScript.Quit
Parts = Split(XML, SplitString)
XMLNew = Parts(0) & _
vbCrLf & " <ADDRESS>server.domain.neu</ADDRESS>" & _
vbCrLf & " <USER></USER>" & _
vbCrLf & " <ALIAS></ALIAS>" & _
vbCrLf & " <ORIGIN>Server.domain.alt/Teil1</ORIGIN>" & _
vbCrLf & " <SSL_CERT_AUTOLOGIN>0</SSL_CERT_AUTOLOGIN>" & _
vbCrLf & " <SSL_CERT_LOGIN_TO_WEBTOP>0</SSL_CERT_LOGIN_TO_WEBTOP>" & _
vbCrLf & " <PASSWORD></PASSWORD>" & _
vbCrLf & " <OPTIONAL_FIELD></OPTIONAL_FIELD>" & _
vbCrLf & " <SAVEPASSWORDS>NO</SAVEPASSWORDS>" & _
vbCrLf & vbCrLf & SplitString & Parts(1)
fso.CreateTextFile(FilePath).Write XMLNew
@RetroDude
Durch die Zeilen 1 und 2 sollte das dann als Logon-Script verwendbar sein.
Zu beachten wäre noch, dass in dieser Version keine Sicherungskopie der alten Datei erstellt wird!
Grüße
bastla