Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBS For Each Schleife in vorhandenen Code einfügen -

Frage Entwicklung Batch & Shell

Mitglied: Azubi1452

Azubi1452 (Level 1) - Jetzt verbinden

07.10.2010, aktualisiert 16:29 Uhr, 3559 Aufrufe, 18 Kommentare

Hallo zusammen,

ich habe hier ein Skript welches auf einem Remote-Server das EreignisLog checkt und mir dann eine Mail schickt mit allen Errormeldungen in den Bereichen "System" und "Anwendung". Soweit klappt dies auch.

Nun möchte ich aber mit dem selben Skript mehrere Server auf einmal checken so, dass ich eine Mail bekomme mit den Errormeldungen von allen Servern.
Ich hänge mal eine Kopie von dem Skript an, als dies noch wenigstens mit einem Server funktionierte. Das Skript indem ich versucht habe die Schleife einzubauen, mute ich euch lieber nicht zu. ^^
Wenn ich das richtig sehe, müssen ja "nur" die beiden For Each Schleifen sowie am Anfang die Tabellen für jeden Server in dem Array dann ausgeführt werden. Ist aber nicht so einfach, wie ich finde...

Zum testen einfach die Daten oben in den Einstellungen anpassen.
Danke im Voraus

Gruß Azubi

Das Skript habe ich übrigens von hier : http://administratortechnology.eu/index.php?content=63157

01.
'--------------------------------------------------Einstellungen------------------------------------------------- 
02.
'Gibt die Maximale Anzahl der zurückgelieferten Einträge an 
03.
'Werte für System Log 
04.
maxwert = 50 
05.
'Werte für Application Log 
06.
maxwert2 = 25 
07.
'gibt an wieviele Tage zurück gegangen werden soll 
08.
zeitsp = 7 
09.
'Email Settings 
10.
absender = "absender@test.de" 
11.
mailserver = "IP" 
12.
empfanger = "empfanger@test.de" 
13.
 
14.
Set oArg = wscript.arguments 
15.
 
16.
strServer = "Server-IP" 
17.
 
18.
 
19.
 
20.
mail = "mail@test.de" 
21.
mail2 = "mail@test.de" 
22.
ifertig = "False" 
23.
i2fertig = "False" 
24.
if isOnline(strServer) Then 
25.
 
26.
strNamespace = "root\cimv2" 
27.
strUser = "domäne\admin" 'domäne\admin 
28.
strPassword = "PW" 
29.
'--------------------------------------------Einstellungen Ende--------------------------------------------------- 
30.
 
31.
Const WbemAuthenticationLevelPktPrivacy = 6 
32.
 
33.
 
34.
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator") 
35.
Set objWMI = objwbemLocator.ConnectServer _ 
36.
(strServer, strNamespace, strUser, strPassword) 
37.
objWMI.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy 
38.
 
39.
Set objInstances = objWMI.ExecQuery ("Select * from Win32_NTLogEvent WHERE Logfile = 'System' and EventType = 1") 
40.
Set objInstances2 = objWMI.ExecQuery ("Select * from Win32_NTLogEvent WHERE Logfile = 'Application' and EventType = 1") 
41.
dim f 
42.
Else  
43.
wscript.quit 
44.
End if 
45.
 
46.
    mail = "<h1>System :</h1><br><TABLE Border=1>" & chr(13) 
47.
    mail = mail & "<Tr>" & chr(13) 
48.
    mail = mail &   "<TD>Computer</TD>"& chr(13) 
49.
    mail = mail &  "<TD>Ereigniskennung</TD>"& chr(13) 
50.
    mail = mail &   "<TD>Beschreibung</TD>"& chr(13) 
51.
    mail = mail &   "<TD>Quelle </TD>"& chr(13) 
52.
    mail = mail &  "<TD>Datum </TD>"& chr(13) 
53.
    mail = mail &   "</TR>"& chr(13) 
54.
         
55.
    mail2 = "<br><h1>Anwendung:</h1><br><TABLE border=1>" & chr(13) 
56.
    mail2 = mail2 & "<Tr>" & chr(13) 
57.
    mail2 = mail2 &   "<TD>Computer</TD>"& chr(13) 
58.
    mail2 = mail2 &  "<TD>Ereigniskennung</TD>"& chr(13) 
59.
    mail2 = mail2 &   "<TD>Beschreibung</TD>"& chr(13) 
60.
    mail2 = mail2 &   "<TD>Quelle</TD>"& chr(13) 
61.
    mail2 = mail2 &  "<TD>Datum </TD>"& chr(13) 
62.
    mail2 = mail2 &   "</TR>"& chr(13) 
63.
 
64.
dat = now() - zeitsp 
65.
i = 0 
66.
i2 = 0 
67.
 
68.
For Each objInstance in objInstances 
69.
        dat1 = objInstance.TimeGenerated 
70.
        dat1 = dConvertWMItoVBSDate(dat1) 
71.
                if i < maxwert and dat1 > dat Then 
72.
                        With objInstance             
73.
                        mail = mail &   "<Tr>"& chr(13) 
74.
                        mail = mail &   "<TD>" & .ComputerName & "</TD>"& chr(13) 
75.
                        mail = mail &   "<TD>" & .EventCode & "</TD>"& chr(13) 
76.
                        mail = mail &  "<TD>" & .Message & "</TD>"& chr(13) 
77.
                        mail = mail &   "<TD>" & .SourceName & "</TD>"& chr(13) 
78.
                        mail = mail &   "<TD>" & dConvertWMItoVBSDate(.TimeGenerated) & "</TD>"& chr(13) 
79.
                        mail = mail &   "</TR>"& chr(13) 
80.
                        i = i +1 
81.
                        End With 
82.
                        On Error Goto 0 
83.
                Elseif i > maxwert Then 
84.
                        ifertig="True" 
85.
                        exit for 
86.
                Elseif dat1 < dat Then 
87.
                        ifertig="True" 
88.
                        exit for 
89.
                end if 
90.
Next 
91.
 
92.
For Each objInstance in objInstances2 
93.
  dat1 = objInstance.TimeGenerated 
94.
        dat1 = dConvertWMItoVBSDate(dat1) 
95.
if i2< maxwert2 and dat1 > dat Then 
96.
                    With objInstance            
97.
                        mail2 = mail2 &   "<Tr>"& chr(13) 
98.
                        mail2 = mail2 &   "<TD>" & .ComputerName & "</TD>"& chr(13) 
99.
                        mail2 = mail2 &   "<TD>" & .EventCode & "</TD>"& chr(13) 
100.
                        mail2 = mail2 &   "<TD>" & .Message & "</TD>"& chr(13) 
101.
                        mail2 = mail2 &   "<TD>" & .SourceName & "</TD>"& chr(13) 
102.
                        mail2 = mail2 &   "<TD>" & dConvertWMItoVBSDate(.TimeGenerated) & "</TD>"& chr(13) 
103.
                        mail2 = mail2 & "</TR>" & chr(13) 
104.
                        i2 = i2 +1 
105.
                    End With 
106.
                        On Error Goto 0 
107.
                    elseif i2 > maxwert2 Then 
108.
                        i2fertig = "True" 
109.
                        exit for 
110.
                    elseif dat1 < dat Then 
111.
                        ifertig="True"   
112.
                    exit for                         
113.
                End if 
114.
Next 
115.
 
116.
        mail = mail &   "</Table>"& chr(13) 
117.
        mail2 = mail2 &   "</Table>"& chr(13) 
118.
        Set objEmail = CreateObject("CDO.Message") 
119.
        objEmail.From = absender 
120.
        objEmail.To = empfanger 
121.
        objEmail.Subject = "Ereignisanzeige von:  " & strserver & " - System : " & i & " Anwendung: " & i2 
122.
        objEmail.HTMLbody = "<HTML><Body>" & mail & "<br>" & mail2 & "</body></html>" 
123.
        objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
124.
        objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "MAILSERVER" 
125.
        objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
126.
        objEmail.Configuration.Fields.Update 
127.
        objEmail.Send 
128.
wscript.quit 
129.
 
130.
'----------------Schleifenende !-------------------------------------------------- 
131.
 
132.
function IsOnline(host) 
133.
set WshShell = CreateObject("Wscript.Shell") 
134.
set temp = wshshell.Exec ("ping.exe -n 1 -w 100 "&host) 
135.
dummy = temp.StdOut.ReadAll 
136.
IF instr(1,dummy,"Antwort") >0 THEN 
137.
isonline = true 
138.
ELSE 
139.
isonline = false 
140.
END IF 
141.
end Function 
142.
 
143.
Private Function dConvertWMItoVBSDate(sDate) 
144.
  Dim sMonth, sDay, sYear, sHour, sMinutes, sSeconds 
145.
  sMonth = Mid(sDate,5,2) 
146.
  sDay = Mid(sDate,7,2) 
147.
  sYear = Mid(sDate,1,4) 
148.
  sHour = Mid(sDate,9,2) 
149.
  sMinutes = Mid(sDate,11,2) 
150.
  sSeconds = Mid(sDate,13,2) 
151.
  dConvertWMItoVBSDate = DateSerial (sYear, sMonth, sDay) + TimeSerial (sHour, sMinutes, sSeconds) 
152.
End Function
Mitglied: bastla
07.10.2010 um 17:21 Uhr
Hallo Azubi452 und willkommen im Forum!

Rein schematisch (und völlig ungetestet) sollte sich das etwa so machen lassen:
01.
'--------------------------------------------------Einstellungen------------------------------------------------- 
02.
'Gibt die Maximale Anzahl der zurückgelieferten Einträge an 
03.
'Werte für System Log 
04.
maxwert = 50 
05.
'Werte für Application Log 
06.
maxwert2 = 25 
07.
'gibt an wieviele Tage zurück gegangen werden soll 
08.
zeitsp = 7 
09.
'Email Settings 
10.
absender = "absender@test.de" 
11.
mailserver = "IP" 
12.
empfanger = "empfanger@test.de" 
13.
 
14.
Const WbemAuthenticationLevelPktPrivacy = 6 
15.
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator") 
16.
strNamespace = "root\cimv2" 
17.
mail = "mail@test.de" 
18.
mail2 = "mail@test.de" 
19.
 
20.
Set oArg = wscript.arguments 
21.
 
22.
arrServer = Array("Server1-IP", "Server2-IP", "Server3-IP") 
23.
 
24.
For Each strServer In arrServer 
25.
    ifertig = "False" 
26.
    i2fertig = "False" 
27.
 
28.
    If isOnline(strServer) Then 
29.
         
30.
        strUser = "domäne\admin" 'domäne\admin 
31.
        strPassword = "PW" 
32.
        '--------------------------------------------Einstellungen Ende--------------------------------------------------- 
33.
 
34.
        Set objWMI = objwbemLocator.ConnectServer _ 
35.
            (strServer, strNamespace, strUser, strPassword) 
36.
        objWMI.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy 
37.
 
38.
        Set objInstances = objWMI.ExecQuery ("Select * from Win32_NTLogEvent WHERE Logfile = 'System' and EventType = 1") 
39.
        Set objInstances2 = objWMI.ExecQuery ("Select * from Win32_NTLogEvent WHERE Logfile = 'Application' and EventType = 1") 
40.
        dim f 
41.
 
42.
        mail = "<h1>System :</h1><br><TABLE Border=1>" & chr(13) 
43.
        mail = mail & "<Tr>" & chr(13) 
44.
        mail = mail &   "<TD>Computer</TD>"& chr(13) 
45.
        mail = mail &  "<TD>Ereigniskennung</TD>"& chr(13) 
46.
        mail = mail &   "<TD>Beschreibung</TD>"& chr(13) 
47.
        mail = mail &   "<TD>Quelle </TD>"& chr(13) 
48.
        mail = mail &  "<TD>Datum </TD>"& chr(13) 
49.
        mail = mail &   "</TR>"& chr(13) 
50.
         
51.
        mail2 = "<br><h1>Anwendung:</h1><br><TABLE border=1>" & chr(13) 
52.
        mail2 = mail2 & "<Tr>" & chr(13) 
53.
        mail2 = mail2 &   "<TD>Computer</TD>"& chr(13) 
54.
        mail2 = mail2 &  "<TD>Ereigniskennung</TD>"& chr(13) 
55.
        mail2 = mail2 &   "<TD>Beschreibung</TD>"& chr(13) 
56.
        mail2 = mail2 &   "<TD>Quelle</TD>"& chr(13) 
57.
        mail2 = mail2 &  "<TD>Datum </TD>"& chr(13) 
58.
        mail2 = mail2 &   "</TR>"& chr(13) 
59.
 
60.
        dat = now() - zeitsp 
61.
        i = 0 
62.
        i2 = 0 
63.
 
64.
        For Each objInstance in objInstances 
65.
            dat1 = objInstance.TimeGenerated 
66.
            dat1 = dConvertWMItoVBSDate(dat1) 
67.
            if i < maxwert and dat1 > dat Then 
68.
                With objInstance             
69.
                    mail = mail &   "<Tr>"& chr(13) 
70.
                    mail = mail &   "<TD>" & .ComputerName & "</TD>"& chr(13) 
71.
                    mail = mail &   "<TD>" & .EventCode & "</TD>"& chr(13) 
72.
                    mail = mail &  "<TD>" & .Message & "</TD>"& chr(13) 
73.
                    mail = mail &   "<TD>" & .SourceName & "</TD>"& chr(13) 
74.
                    mail = mail &   "<TD>" & dConvertWMItoVBSDate(.TimeGenerated) & "</TD>"& chr(13) 
75.
                    mail = mail &   "</TR>"& chr(13) 
76.
                    i = i +1 
77.
                End With 
78.
                On Error Goto 0 
79.
            Elseif i > maxwert Then 
80.
                ifertig="True" 
81.
                exit for 
82.
            Elseif dat1 < dat Then 
83.
                ifertig="True" 
84.
                exit for 
85.
            end if 
86.
        Next 
87.
 
88.
        For Each objInstance in objInstances2 
89.
            dat1 = objInstance.TimeGenerated 
90.
            dat1 = dConvertWMItoVBSDate(dat1) 
91.
            if i2< maxwert2 and dat1 > dat Then 
92.
                With objInstance            
93.
                    mail2 = mail2 &   "<Tr>"& chr(13) 
94.
                    mail2 = mail2 &   "<TD>" & .ComputerName & "</TD>"& chr(13) 
95.
                    mail2 = mail2 &   "<TD>" & .EventCode & "</TD>"& chr(13) 
96.
                    mail2 = mail2 &   "<TD>" & .Message & "</TD>"& chr(13) 
97.
                    mail2 = mail2 &   "<TD>" & .SourceName & "</TD>"& chr(13) 
98.
                    mail2 = mail2 &   "<TD>" & dConvertWMItoVBSDate(.TimeGenerated) & "</TD>"& chr(13) 
99.
                    mail2 = mail2 & "</TR>" & chr(13) 
100.
                    i2 = i2 +1 
101.
                End With 
102.
                On Error Goto 0 
103.
            elseif i2 > maxwert2 Then 
104.
                i2fertig = "True" 
105.
                exit for 
106.
            elseif dat1 < dat Then 
107.
                ifertig="True"   
108.
                exit for                         
109.
            End if 
110.
        Next 
111.
 
112.
        mail = mail &   "</Table>"& chr(13) 
113.
        mail2 = mail2 &   "</Table>"& chr(13) 
114.
        Set objEmail = CreateObject("CDO.Message") 
115.
        objEmail.From = absender 
116.
        objEmail.To = empfanger 
117.
        objEmail.Subject = "Ereignisanzeige von:  " & strserver & " - System : " & i & " Anwendung: " & i2 
118.
        objEmail.HTMLbody = "<HTML><Body>" & mail & "<br>" & mail2 & "</body></html>" 
119.
        objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
120.
        objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "MAILSERVER" 
121.
        objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
122.
        objEmail.Configuration.Fields.Update 
123.
        objEmail.Send 
124.
    End If 
125.
Next 
126.
'----------------Schleifenende !-------------------------------------------------- 
127.
 
128.
function IsOnline(host) 
129.
set WshShell = CreateObject("Wscript.Shell") 
130.
set temp = wshshell.Exec ("ping.exe -n 1 -w 100 "&host) 
131.
dummy = temp.StdOut.ReadAll 
132.
IF instr(1,dummy,"Antwort") >0 THEN 
133.
isonline = true 
134.
ELSE 
135.
isonline = false 
136.
END IF 
137.
end Function 
138.
 
139.
Private Function dConvertWMItoVBSDate(sDate) 
140.
  Dim sMonth, sDay, sYear, sHour, sMinutes, sSeconds 
141.
  sMonth = Mid(sDate,5,2) 
142.
  sDay = Mid(sDate,7,2) 
143.
  sYear = Mid(sDate,1,4) 
144.
  sHour = Mid(sDate,9,2) 
145.
  sMinutes = Mid(sDate,11,2) 
146.
  sSeconds = Mid(sDate,13,2) 
147.
  dConvertWMItoVBSDate = DateSerial (sYear, sMonth, sDay) + TimeSerial (sHour, sMinutes, sSeconds) 
148.
End Function
Je nachdem, ob es für jeden Server unterschiedliche User / Passwörter geben soll, müsste jeweils ein weiteres Array dafür erstellt werden und die Schleife auf
01.
For s = 0 To UBound(arrServer) 
02.
    strServer = arrServer(s) 
03.
    strUser = arrUser(s) 
04.
    strPW = arrPW(s) 
05.
    .... 
06.
Next
geändert werden ...

Grüße
bastla
Bitte warten ..
Mitglied: Azubi1452
08.10.2010 um 11:11 Uhr
Hallo,

danke für dein Beitrag. Klappt prima.

Nun ist es so, dass ich JEWEILS eine Mail pro Server bekomme. Ich möchte aber gerne eine Mail für ALLE Server haben.

Ist ja ganz einfach habe ich mir heute morgen gedacht. Einfach nur den Teil wo die Mail geschickt wird aus der Schleife nehmen, vorher die Daten in eine Varianle schreiben und am Ende dann eine Mail mit der Variable verschicken. Aber irgendwie stehe ich gerade auf dem Schlauch.

Ich habe also am Ende der Schleife die Daten für einen Server ersteinmal zuammen geschrieben in eine Variable:

01.
  
02.
inhaltgesamt = mail & mail2 
Nun muss ich "nurnoch" zu der Variable "inhaltgesamt" zu der anderen "inhaltgesamt"rechnen weil ich ja eine Variable haben möchte für ALLE Server im Array damit ich am Ende nur die eine Variable an die Mail übergeben muss. Also mach ich so:

01.
inhaltgesamtgesamt = inhaltgesamt & inhaltgesamt
Nun sollte die zeile 119 ja so aussehen damit ich eine mail für alle server im array bekomme:
01.
  
02.
objEmail.HTMLbody = "<HTML><Body>" & inhaltgesamtgesamt & "</body></html>"
Das klappt aber alles nicht so wie ich mir das denke...
hat jemand eine Idee ?

Danke schonmal

Gruß
Azubi
Bitte warten ..
Mitglied: bastla
08.10.2010 um 12:22 Uhr
Hallo Azubi1452!

Besser so:
inhaltgesamt = inhaltgesamt  & mail & mail2
und dann eben
objEmail.HTMLbody = "<HTML><Body>" & inhaltgesamt & "</body></html>"
Grüße
bastla
Bitte warten ..
Mitglied: 76109
08.10.2010 um 16:03 Uhr
Hallo Azubi1452!

Dabei sei vielleicht noch anzumerken, dass:

sich noch die unnötigen Chr(13)-Funktionsaufrufe durch die eine einfache vbCr-Konstante ersetzen ließen

die Tags: "<HTML><Body>" und "</Body></Html>" genauso unnötig sind, weil der Text ja schon explizit in den objEmail.HtmlBody geschrieben wird. D.h. die Body-Tags sind mit dem ganzen sonstigem Html-Klumpatsch bereits vordefiniert

Gruß Dieter
Bitte warten ..
Mitglied: Azubi1452
25.10.2010 um 10:45 Uhr
Hallo zusammen,

danke für euren bisherigen Antworten.
Die reinen Informationen aus dem Eventlog der jeweiligen Server bekomme ich nun per Mail.

Nun möchte ich die Daten übersichtlich in der Mail darstellen.

Bis jetzt läuft es so ab, dass ich eine Mail mit einer HTML-Datei (Eventlog.html) im Anhang bekomme in der dann die Daten aus dem Eventlog stehen. Nun habe ich für die Übersicht ein "Style" mit css innerhalb der Datei geschrieben. Das Funktioniert auch soweit ganz gut.

Als nächstes habe ich zwei Felder (Alle Aufklappen, und Alle zuklappen ) gemeint sind alle Server.

Ich habe dies in einer anderen Test- HTML Datei schon positiv testen können, also das reine Auf- bzw. Zuklappen.

Nur mein Skript ist ja eine VBS-Datei. Dort habe ich, wie mit dem "CSS-Style" den JAVA-Code für die Auf- und Zuklapp- Buttons in eine Variable geschrieben und später einfach mit: Datei.Write Variable in die HTML- Datei (Eventlog.html) geschrieben.

Also wie gesagt der Style funktioniert jedoch der Javacode in meinem Skript nicht, ich sehe zwar die Buttons, jedoch passiert nichts wenn ich drauf klicke. In einer Test-HTML-Datei funktioniert dies jedoch.

Kann es vielleicht sein, dass Java sich nicht in VBS einbetten lässt ? Ich habe per google noch nichts finden können.

Ich hoffe ich habe es verständllich erklärt.

Der JavaCode in der VBS- Datei sieht so aus:

01.
rahmen = rahmen & "<DIV class=HeaderBar>Täglicher Spezialbericht für alle Server der  Farm - generiert am DATUM um UHRZEIT auf SERVER</DIV>" 
02.
rahmen = rahmen & "<body onLoad='hideAll();'>" 
03.
rahmen = rahmen & "<table border='0' width='100%'>" 
04.
rahmen = rahmen & "<DIV class=FooterBar>Erstellt von </DIV>" 
05.
rahmen = rahmen & "<BUTTON onclick='showAll();'>Alle Aufklappen</BUTTON>" 
06.
rahmen = rahmen & "<BUTTON onclick='hideAll();'>Alle Einklappen</BUTTON>"
01.
java = "<script>" 
02.
java = java & "function refresh() {" 
03.
java = java & "  window.location.reload( true );" 
04.
java = java & "}" 
05.
java = java & "      // HSS0 - HSS18 & HST0 - HST18" 
06.
java = java & "function showAll() {" 
07.
java = java & "  showItem('HSS0', 'HST0');" 
08.
java = java & "  showItem('HSS1', 'HST1');" 
09.
java = java & "}" 
10.
java = java & "function hideAll() {" 
11.
java = java & "  hideItem('HSS0', 'HST0');" 
12.
java = java & "  hideItem('HSS1', 'HST1');" 
13.
java = java & "}" 
14.
java = java & "function showItem( _itemId, _txtId ) {" 
15.
java = java & "  var thisLevel             = document.getElementById( _itemId );" 
16.
java = java & "  var thisTxt               = document.getElementById( _txtId );" 
17.
java = java & "  thisLevel.style.display = 'block';" 
18.
java = java & "  thisTxt.innerText       = '[-]';" 
19.
java = java & "}" 
20.
java = java & "function hideItem( _itemId, _txtId ) {"  
21.
java = java & "  var thisLevel             = document.getElementById( _itemId );" 
22.
java = java & "  var thisTxt               = document.getElementById( _txtId );" 
23.
java = java & "  thisLevel.style.display = 'none';" 
24.
java = java & "  thisTxt.innerText       = '[+]';" 
25.
java = java & "}" 
26.
java = java & "function toggleItem( _itemId, _txtId ) {" 
27.
java = java & "  var thisLevel             = document.getElementById( _itemId );" 
28.
java = java & "  var thisTxt               = document.getElementById( _txtId );" 
29.
java = java & "  if ( thisLevel.style.display == 'none') {" 
30.
java = java & "    thisLevel.style.display = 'block';" 
31.
java = java & "    thisTxt.innerText       = '[-]';" 
32.
java = java & "  }" 
33.
java = java & "  else {" 
34.
java = java & "    thisLevel.style.display = 'none';" 
35.
java = java & "    thisTxt.innerText       = '[+]';" 
36.
java = java & "  }" 
37.
java = java & "}" 
38.
java = java & "</script>"
Bitte warten ..
Mitglied: 76109
25.10.2010 um 12:12 Uhr
Hallo Azubi1452!

Mit VB-Script würde es in etwa so aussehen:
01.
<input type='button' value='Alle Aufklappen' onClick='ShowAll'>
Gruß Dieter
Bitte warten ..
Mitglied: Azubi1452
25.10.2010 um 14:52 Uhr
Hi,

das hat mir leider nicht so wirklich weitergebracht....ich müsste ja so den Quelltext von Java auf vbs umschrieben..und ich denke das ist nicht so einfach, und da ich ja eigentlisch schon alle CodeSchnipsel habe - sie also "nurnoch" zusammenbringen muss und man aus VBScript Java und HTML aufrufen kann, dacht ich mach ich das doch lieber so.

Aber nun mal was anderes....Ich habe eine Idee weshalb der Java-Teil bei mir nicht so richtig will.

Ich habe aus dem JavaCode die "" durch ' ' ersetzt da ich sonst diesen Fehler bekam: Anweisungsende erwartet.
Ich denke mal dies ist mein Fehler. Nun ist nur die Frage was das Gegenstück von Javas Anführungszeichen in VBScript ist ?

Hier mal ein Beispiel von dem Javacode:
So war es vorher und so ist es in der funktionierenden html-Datei
01.
  
02.
function showAll() { 
03.
  showItem("HSS0", "HST0"); 
04.
  showItem("HSS1", "HST1");
Und so habe ich es in meinem VBScript umgeschrieben damit ich kein: Aweisungsende Fehler mehr bekomme:
01.
  
02.
function showAll() { 
03.
  showItem('HSS0', 'HST0'); 
04.
  showItem('HSS1', 'HST1');
Bitte warten ..
Mitglied: bastla
25.10.2010 um 15:18 Uhr
Hallo Azubi1452!

Um in VBS ein Anführungszeichen als String (oder einen Bestandteil davon) zu verwenden, musst du dieses entweder verdoppeln oder als Chr(34) schreiben:
java = java & "  showItem(""HSS0"", ""HST0"");" 
Grüße
bastla
Bitte warten ..
Mitglied: Azubi1452
25.10.2010 um 16:55 Uhr
Hallo,

hm..ich habe nun alle ' durch "" erseetzt...funktioniert leider immer noch nicht.
ich habe nun echt keine Ideen mehr...Könnt ihr mal ein Blick auf den relevanten Teil der Skripts werfen ?

Der Rahmen:

01.
rahmen = "<DIV class=HeaderBar>Täglicher Spezialbericht für alle Server der Cloudapps- Farm - generiert am DATUM um UHRZEIT auf SERVER</DIV>" 
02.
rahmen = rahmen & "<body onLoad=""hideAll();"">" 
03.
rahmen = rahmen & "<table border=""0"" width=""100%"">" 
04.
rahmen = rahmen & "<DIV class=FooterBar>Erstellt von </DIV>" 
05.
rahmen = rahmen & "<BUTTON onclick=""showAll();"">Alle Aufklappen</BUTTON>" 
06.
rahmen = rahmen & "<BUTTON onclick=""hideAll();"">Alle Einklappen</BUTTON>" 
07.
'rahmen = rahmen & "<input type='button' value='Alle Aufklappen' onClick='showAll'>" 
08.
'rahmen = rahmen  & "<input type='button' value='Alle Zuklappen' onClick='hideAll'>"
Serverübersicht:
01.
    servera = servera & "<!-- Erster Server  -->" 
02.
servera = servera & "<td width=100%><p>" 
03.
servera = servera & "<div style=cursor:hand onclick=toggleItem( ""HSS0"", ""HST0"" );>" 
04.
servera = servera & "<div class=HeaderBar><table class=HeaderText border=""0"" width=""97%""><tr>" 
05.
servera = servera & "<td width=""3%"" innerText=""[+]"" id=HST0></td>" 
06.
servera = servera & "<td width=""97%"">" & arrServer(servernummer) & "</td></tr></table></div>"   
07.
servera = servera & "</td></tr></table></div>" 
08.
servera = servera & "</div>" 
09.
servera = servera & "<span style=""display:none;color:blue;"" id=""HSS0"">" 
10.
servera = servera & "<TABLE class=HeaderFrame height=100 cellSpacing=0 cols=3 cellPadding=0 width=""100%"" border=0 align=""left"">" 
11.
servera = servera & "<TBODY>" 
12.
servera = servera & "<TR vAlign=top height=100>" 
13.
servera = servera & "<TD vAlign=top width=""100%"" height=""100"">" 
14.
servera = servera & "<DIV style=""overflow: auto; width: ""100%""; height: 219; valign: top"">" 
15.
servera = servera & "<TABLE cellSpacing=0 cols=4 cellPadding=0 width=""100%"" border=0 height=""100"">" 
16.
servera = servera & "<TR height=25 nowrap>" 
17.
servera = servera & "<TD class=HeaderTitleNoVLine height=""14"" width=""10"">&nbsp;</TD>" 
18.
servera = servera & "<!-- Überschriften unterhalb des Servers  -->" 
19.
servera = servera & "<TD class=HeaderTitle noWrap align=left height=""14"" width=""50%"">System</TD>" 
20.
servera = servera & "<TD class=HeaderTitle noWrap align=left height=""14"">Anwendung</TD>" 
21.
servera = servera & "</TR>" 
22.
servera = servera & "<TR class=AltLight height=22>" 
23.
servera = servera & "<TD class=AltLightNoVline align=middle height=""17"" width=""10""> </TD>" 
24.
servera = servera & "<TD class=AltLight align=right height=""17"" width=""50%"">HTML Text für System</TD>" 
25.
servera = servera & "<TD class=AltLight align=left height=""17"">HTML Text für Anwendung</TD>" 
26.
servera = servera & "</TR></TBODY></TD></DIV></TABLE></TR></TABLE></span>"
Der Javacode für die beiden Buttons:
01.
java = "<Script Language=JavaScript>" 
02.
java = java & "function refresh() {" 
03.
java = java & "  window.location.reload( true );" 
04.
java = java & "}" 
05.
java = java & "      // HSS0 - HSS18 & HST0 - HST18" 
06.
java = java & "function showAll() {" 
07.
java = java & "  showItem(""HSS0"", ""HST0"");" 
08.
java = java & "  showItem(""HSS1"", ""HST1"");" 
09.
java = java & "}" 
10.
java = java & "function hideAll() {" 
11.
java = java & "  hideItem(""HSS0"", ""HST0"");" 
12.
java = java & "  hideItem(""HSS1"", ""HST1"");" 
13.
java = java & "}" 
14.
java = java & "function showItem( _itemId, _txtId ) {" 
15.
java = java & "  var thisLevel             = document.getElementById( _itemId );" 
16.
java = java & "  var thisTxt               = document.getElementById( _txtId );" 
17.
java = java & "  thisLevel.style.display = ""block"";" 
18.
java = java & "  thisTxt.innerText       = ""[-]"";" 
19.
java = java & "}" 
20.
java = java & "function hideItem( _itemId, _txtId ) {"  
21.
java = java & "  var thisLevel             = document.getElementById( _itemId );" 
22.
java = java & "  var thisTxt               = document.getElementById( _txtId );" 
23.
java = java & "  thisLevel.style.display = ""none"";" 
24.
java = java & "  thisTxt.innerText       = ""[+]"";" 
25.
java = java & "}" 
26.
java = java & "function toggleItem( _itemId, _txtId ) {" 
27.
java = java & "  var thisLevel             = document.getElementById( _itemId );" 
28.
java = java & "  var thisTxt               = document.getElementById( _txtId );" 
29.
java = java & "  if ( thisLevel.style.display == ""none"") {" 
30.
java = java & "    thisLevel.style.display = ""block"";" 
31.
java = java & "    thisTxt.innerText       = ""[-]"";" 
32.
java = java & "  }" 
33.
java = java & "  else {" 
34.
java = java & "    thisLevel.style.display = ""none"";" 
35.
java = java & "    thisTxt.innerText       = ""[+]"";" 
36.
java = java & "  }" 
37.
java = java & "}" 
38.
java = java & "</script>" 
39.
 
Und die Ausgabe:
01.
oZDatei.Write "<HTML>" & head & style & "<Body>" & rahmen & servera & inhaltgesamt & "</body></html>"
Danke schonmal,

Gruß Azubi
Bitte warten ..
Mitglied: bastla
25.10.2010 um 17:06 Uhr
Hallo Azubi1452!
oZDatei.Write "<HTML>" & head & style & "<Body>" & rahmen & servera & inhaltgesamt & "</body></html>"
Vielleicht bringt es etwas, auch das Javascript in die Datei zu schreiben?

Grüße
bastla
Bitte warten ..
Mitglied: Azubi1452
26.10.2010 um 15:10 Uhr
Hallo,

okay das hatte ich heute Morgen tatsächlich vergessen !

Aber auch wenn ich das Javascript ausgeben lasse passiert nichts....

Ist eigentlich die Reihenfolge in der ich die variablen ausgebe relevant ?

Können Variablen innerhalb jeweils anderen Variablen überhaupt miteinander "kommunizieren " ?
Bsp:
01.
java = java & "function showAll() {"  
02.
java = java & "  showItem(""HSS0"", ""HST0"");"
01.
servera = servera & "<div style=cursor:hand onclick=toggleItem( ""HSS0"", ""HST0"" );>" 
HSS0 wird in der Variable java und servera gebraucht. Ist es überhaupt Möglich die Variable so weiterzureichen ?

Weil in der server- Variable sehe ich z.B den HTML-Teil aber der Javateil funktioniert dort nicht.

Hast du, oder jemand anderes, noch eine Idee woran es liegen könnte ?
Ich werd` nun mich noch weiter in dieses Toggle-Element einlesen.

Danke & Gruß,
Azubi
Bitte warten ..
Mitglied: bastla
26.10.2010 um 15:22 Uhr
Hallo Azubi1452!

Um den Variableninhalt von HSS0 und HST0 zwischen Anführungszeichen einzusetzen (ich hatte nur oberflächlich drübergeschaut ) , müsste die Zeile so aussehen:
java = java & "  showItem(""" & HSS0 & """, """ & HST0 & """);"
Grüße
bastla
Bitte warten ..
Mitglied: Azubi1452
29.10.2010 um 13:34 Uhr
Hallo zusammen,

Danke ersteinmal für die bisherigen Beiträge, aber leider will mein Skript immernoch nicht so wie ich es will.

Nachdem ich die Tage über weiter getüftelt und getestet habe, habe ich mal beschlossen meine Fehler an einem kleinen BeispielCode zu verdeutlichen .

Beispiel.vbs:
01.
toggle = "<a href='javascript: toggle()'>toggle</a>" 
02.
toggle = toggle & "<div id='div1' style='display:none'>" 
03.
toggle = toggle & "Don't display me" 
04.
toggle = toggle & "</div>" 
05.
toggle = toggle & "<script>" 
06.
toggle = toggle & "function toggle(){" 
07.
toggle = toggle &	"var div1 = document.getElementById('div1')" 
08.
toggle = toggle &	"if (div1.style.display == 'none') {" 
09.
toggle = toggle &		"div1.style.display = 'block'" 
10.
toggle = toggle &	"} else {" 
11.
toggle = toggle &		"div1.style.display = 'none'" 
12.
toggle = toggle &	"}" 
13.
toggle = toggle & "}" 
14.
toggle = toggle & "</script>"
Ausgabezeilen innerhalb der Datei:
01.
Set fso = CreateObject("Scripting.FileSystemObject") 
02.
sZDatei = "C:\Skript\Ergebnis\test.html" 
03.
Set oZDatei = fso.OpenTextFile(sZDatei, 2, True) 
04.
oZDatei.Write "<HTML><Body>" & toggle &"</body></html>" 
05.
oZDatei.Close
Auf der test.html- Seite sieht man zwar einen Link mit der Beschreibung: toggle, aber wenn ich raufklicke passiert nicht -> normalerweise sollte ein "Don't display me " erscheinen, was auch funktioniert, wenn ich die Javazeilen in eine -html Datei schreibe und dementsprechend das: toggle = toggle jeweils weg nehme.

Ich habe die -> ' <- schon durch einfache " und durch doppelte " ersetzt - es bleibt jedoch beim selben Ergebnis.

Wenn ihr mir hier helfen könntet, könnte ich es auf mein richtiges Skript anwenden und ihr würdet mir einen riesen Gefallen tun.

Danke schonmal,
Gruß Azubi
Bitte warten ..
Mitglied: 76109
01.11.2010 um 10:31 Uhr
Hallo Azubi!

Mit Deinem Beispiel funktioniert es so nicht. Wenn ich ich aber den Toggle-Text mit Zeilenvorschub in die Html schreibe, dann funktioniert es:
01.
toggle = "<a href='javascript: toggle()'>toggle</a>" & vbCrLf 
02.
toggle = toggle & "<div id='div1' style='display:none'>Don't display me</div>" & vbCrLf 
03.
toggle = toggle & "<script>" & vbCrLf 
04.
toggle = toggle & "function toggle(){" & vbCrLf 
05.
toggle = toggle & "    var div1 = document.getElementById('div1')" & vbCrLf 
06.
toggle = toggle & "    if (div1.style.display == 'none') {" & vbCrLf 
07.
toggle = toggle & "        div1.style.display = 'block'" & vbCrLf 
08.
toggle = toggle & "    } else {" & vbCrLf 
09.
toggle = toggle & "        div1.style.display = 'none'" & vbCrLf 
10.
toggle = toggle & "    }" & vbCrLf 
11.
toggle = toggle & "}" & vbCrLf 
12.
toggle = toggle & "</script>" & vbCrLf 
13.
 
14.
Set fso = CreateObject("Scripting.FileSystemObject") 
15.
sZDatei = "E:\Threads\$Test\test.html" 
16.
Set oZDatei = fso.OpenTextFile(sZDatei, 2, True) 
17.
oZDatei.Write "<html><body>" & toggle &"</body></html>" 
18.
oZDatei.Close
Gruß Dieter
Bitte warten ..
Mitglied: Azubi1452
01.11.2010 um 11:47 Uhr
Hallo Didi,

du hattes recht gehabt !!
Nun funktioniert mein Javacode

Vielen Dank !

Gruß,
Azubi
Bitte warten ..
Mitglied: 76109
01.11.2010 um 13:29 Uhr
Hallo Azubi!

Yepp, gern geschehen

Gruß Dieter
Bitte warten ..
Mitglied: Azubi1452
18.11.2010 um 16:07 Uhr
Hallo Leute,

ich habe mal wieder ein bisschen an meinem Skript weiter gebastelt und bin nun dabei die Einträge von den Server die keine Error`s haben garnicht erst in meiner LogHtml- Datei anzuzeigen.
Also bisher bekomme ich,wenn keine Errors gefunden worden, nur die Überschriften ohne einen Eintrag in meinem Ergebnislog ausgegeben.
Ich möchte aber, dass wenn es keine Fehler gibt auch diese leere Tabelle nicht gibt.
Mit einer einfachen IF Abfrage habe ich es schon versucht - leider ohne Erfolg.
Es geht um die Variable "tblmail" und "mail". In "tblmail" ist die Tabelle und in der Variable "mail" steht der Inhalt (also die Errormeldungen).

Nun habe ich folgendes versucht:

01.
  
02.
if tblmail = "<br><TABLE border=1><Tr><TD>Ereigniskennung</TD><TD>Beschreibung</TD><TD>Quelle</TD><TD>Datum </TD></TR></Table>" AND mail <> 0 then 
03.
        tblmail = 0 
04.
        end if
Wenn ich mir die Variable mail ausgebe, bekomme ich ein leeres Fenster zurück - nur wie beschriebt man denn "nichts" in VBScript ?

Danke schonmal
Bitte warten ..
Mitglied: bastla
18.11.2010 um 17:48 Uhr
Hallo Azubi1452!
wie beschriebt man denn "nichts" in VBScript ?
tblmail = ""
Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Microsoft Office
gelöst Wie kann man die Standard-Schriftart bei einfügen von Text in Word 2013 festlegen? (3)

Frage von Rene1976 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (29)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...