Windows Test und Check   -   WinTuC.de

››› WinTuC-Forum ‹‹‹

Selbermachen

erklärt, wie WinTuC verwendet und angepasst werden kann.

1. Einleitung

2. Definition von Aufgaben

3. Programm-Aufruf und Ergebnisdateiname

4. Programm-Aufruf mit zusätzlichen Parametern

5. Anzeige des Ergebnisdatei-Inhalt

6. Eigene Programme testen

7. Eigene [Aufgabe].XML erstellen - Conficker erkennen

8. Für Experten

1. Einleitung

Grundsätzlich: Damit WinTuC_vbs.vbs Programme startet, müssen sie in Aufgaben eingetragen und diese Aufgaben in der WinTuC-Konfiguration ausgewählt sein.

Sollten die folgenden Informationen nicht ausreichend sein, helfen möglicherweise Antworten im
    WinTuC-Forum
Natürlich können dort auch eigene Fragen gestellt und Probleme gelöst werden.

An dieser Stelle einen Dank an die befreundete Site www.source-center.de die das WinTuC-Forum zur Verfügung stellt.

2. Definition von Aufgaben

Als Beispiel für eine [Aufgaben].xml im folgenden einen Auszug aus der 'letzter_Systemstart.xml':

  <Progr>
	<ProgrStart>EreignisanzeigeAnzahlEintr.vbs</ProgrStart>
	<ProgrParam>sy eventlog 6005 der</ProgrParam>
	<ProgrText>Letzter Systemstart lt. EventLog</ProgrText>
	<Info>Ermittelt aus der Ereignisanzeige den letzte Systemstart.
	Erforderlich sind 4 Parameter: EventLogType, EventQuelle, EventID, SuchText.
	Mögliche Werte für EventLogType:
		Sy (System)   ODER
		Sc (Sicherheit, Security)   ODER
		Ap (Anwendung, Application)
	</Info>
  </Progr>
  <Progr>
	<ProgrStart>wmi-LastBootUpTime.vbs</ProgrStart>
	<ProgrParam></ProgrParam>
	<ProgrText>WMI LastBootUpTime</ProgrText>
	<Info></Info>
  </Progr>
Ist der Inhalt mit reichlich Kommentaren versehen, erklärt sich die Verwendung bzw. Parametrisierung von selbst.

Seit der Version v0.9.8 wird beim Klick auf die Aufgabe die [Aufgaben].xml mit Notepad geöffnet.

↑ zum Seitenanfang ↑

3. Programm-Aufruf und Ergebnisdateiname

(Damit WinTuC ein Programm startet, muss es in einer Aufgabe eingetragen und diese Aufgabe über die WinTuC-Konfiguration zusammen mit zu testenden PCs ausgewählt sein.)

Jedes Programm erhält beim Start durch 'WinTuC_vbs.vbs' mindestens zwei Parameter (für die Erkennung der Ergebnisdateien); weitere Parameter können an das Programm übergeben werden (und müssen dazu in der entsprechenden Aufgabe definiert sein):
  1. Parameter: Name des ZielPC
  2. Parameter: eine Zahl
  3. . . .
Das Ergebnis schreibt das Programm in das Verzeichnis, in dem sich das Programm befindet. Der Dateiname der Ergebnisdatei setzt sich wie folgt zusammen:
   [1. Parameter]_[2. Parameter]_[Programmname mit Erweiterung].dat
Nach dem Auslesen einer Ergebnisdatei wird diese gelöscht - mit 'LogJa = 9' in der 'WinTuC_vbs.vbs' wird das Löschen in der LOG-Datei '.\WinTuC_Logs\WinTuC_vbs.vbs.log' dokumentiert.
(Mit dem Ändern des Parameter DelJa = "OK" bleiben die Ergebnisdateien erhalten - als 'Datenmüll'.)
(Jedes Programm wird vor dem Aufruf in ein temporäres Verzeichnis kopiert; z.B. nach '%Temp%\WinTuC_Temp'; hier werden die Ergebnisdateien für die Auswertung erwartet und gelöscht.)


Beispiel 1
In der [Aufgaben].xml sind keine Parameter für das Programm 'beispiel.vbs' definiert. Deshalb wird es mit nur zwei Parametern (Nummer und PCName) gestartet:
   beispiel.vbs 312 PCNR01
Das Ergebnis schreibt das Programm 'beispiel.vbs' in die Ergebnisdatei
   312_PCNR01_beispiel.vbs.dat


Beispiel 2
In der [Aufgaben].xml sind zwei Parameter für das Programm 'test_neu.exe' festgelegt: boot.ini windows
Das Programm 'test_neu.exe' wird dann von 'WinTuC_vbs.vbs' so gestartet:
   test_neu.exe 2 COMP33 boot.ini windows
Das Programm 'test_neu.exe' verwendet die beiden zusätzlichen Parameter 'boot.ini' und 'windows' und schreibt das Resultat in die Ergebnisdatei
   2_COMP33_test_neu.exe.dat


Beispiel 3
Durch die Aufgabe 'letzter_Systemstart.xml' werden zwei Programme verwendet - für eines sind vier Parameter hinterlegt (sy eventlog 6005 der); von 'WinTuC_vbs.vbs' erfolgt der Start so:
   EreignisanzeigeAnzahlEintr.vbs 7 MEINPC sy eventlog 6005 der
Der Name der Ergebnisdatei :
   7_MEINPC_EreignisanzeigeAnzahlEintr.vbs.dat
Inhalt der Ergebnisdatei (zwei Zeilen)
   Quelle: eventlog - ID: 6005 (26x in sy):
   17.02. 20:43; 16.02. 04:24; 14.02. 19:58; 13.02. 16:11; 12.02. 19:22;  06:0 . . .


Beispiel 4
Inhalt einer Ergebnisdatei (eine Zeile); durch den Zeilenanfang ('Zahl drei' und 'Leerschritt') wird der Hintergrund rot gefärbt:
   3 Fehler: AD nicht erreichbar - 'ADGetPath'


Beispiel 5
Inhalt einer Ergebnisdatei (eine Zeile) mit 30 Einträgen
   (30x) KB958687 15.01. 18:32; KB960714 20.12. 11:29; KB955839   11:29; KB958 . . .

↑ zum Seitenanfang ↑

4. Programm-Aufruf mit zusätzlichen Parametern

'WinTuC_vbs.vbs' entnimmt den [Aufgaben].xml den Programmnamen, welche Parameter an das Programm übergeben werden sollen und startet das Programm mit diesen Parametern.

Standardmäßig ist das Trennzeichen zwischen den Parametern in [Aufgaben].xml ein Leerzeichen (Space).

Um z.B. Dateinamen mit Leerzeichen (als dritten und folgende) Parameter zu übergeben, ist jeder (Dateiname als) Parameter in der Aufgabe (XML-Datei) mit Anführungszeichen (") einzuschließen und zwischen den Dateinamen ein Leerzeichen (Space) einzufügen (das ergibt: Anführungszeichen Leerzeichen Anführungszeichen) . . . so wie unter Windows üblich.

Alternativ können die Parameter (einzeln) in je eine Zeile in der Aufgabe (XML-Datei) notiert werden.


Beispiel 6 - eine XML-Datei
  <?xml version='1.0' encoding='ISO-8859-1'?>
  <Aufgabe>
    <AufgName>Datei(en) Änderungsdatum.xml</AufgName>
    <AufgInfo>Prüft das Änderungsdatum der festgelegten Dateien.</AufgInfo>
    <Progr>
	  <ProgrStart>DateiDatum.vbs</ProgrStart>
	  <ProgrParam>
	  C:\Programme\Mozilla Firefox\extensions\{CAFEEFAC-0016-0000-0007-ABCDEFFEDCBA}\chrome.manifest
	  D:\dieseyer.neu\#Win TuC\WinTuC_Aufg\Datei(en) Änderungsdatum.xml
	  "D:\dieseyer.neu\#Win TuC\WinTuC_Aufg\Systemroot Systemdrive.xml"
	  "C:\Programme\Spybot - Search  Destroy\Plugins\TCPIPAddress.dll"
	  "C:\Programme\OpenOffice.org 3\share\uno_packages\cache\uno_packages.db"
	  C:\Programme\MSBuild\Microsoft\Windows Workflow Foundation\v3.5\Workflow.VisualBasic.Targets
	  </ProgrParam>
	  <ProgrText></ProgrText>
	  <Info></Info>
    </Progr>
  </Aufgabe>
Beim Programmaufruf durch 'WinTuC_vbs.vbs' werden dann die (zeilenweisen) Parameter mit einer Zeichenkette übergeben, in der ~;~ (Tilde Semikolon Tilde) als Trennzeichen eingefügt wurden.

Enthält die Parameterauflistung in der [Aufgaben].xml die Zeichenkette ~;~, wird nicht " " als Trennzeichen von 'WinTuC_vbs.vbs' verwendet; ein Parameter kann dann also " " (Anführungszeichen Leerzeichen Anführungszeichen) enthalten.

VBS-Programme (VBScript) können einen Teil der Funktionalität aus der Prozedurensammlung-Datei '.\WinTuC_Progr\WinTuC.Prozeduren' beziehen und die Parameter-Aufarbeitung für die interne Weiterverarbeitung übernehmen - man muss das 'einlesen' der Parameter in das eigene VBS nicht selbst programmieren.

(Die Datei 'WinTuC.Prozeduren' wird bei jedem Start von 'WinTuC_vbs.vbs' durch die enthaltene Prozedur 'WinTuCProzedurenSchreiben' neu geschrieben und ist Bestandteil von 'WinTuC_vbs.vbs'.)

Als Einstieg soll folgendes Skript kurz erklärt werden:


Beispiel 7 - VBS-Beschreibung

     .\WinTuC_Progr\! Beispiel_Baustelle.vbs
Zeile 17: Einbinden und Ausführen der ersten Zeilen der 'WinTuC.Prozeduren'. Dadurch stehen dem VBS die Aufruf-Parameter und u.a. die Prozedur 'ErgebnisSchreiben( Text )' zur Verfügung.

     Execute CreateObject(...
Bei diesem Einbinden der 'WinTuC.Prozeduren' führt das VBS folgende Zeilen sofort aus:

     Call ParameterHolen ' ohne Parameter endet das VBS sofort
     If not WMIpingOK( PCName ) Then
	ErgebnisSchreiben( "3 Fehler: Keine Antwort auf WMI-Ping." )
	Wscript.Quit
	Tst = Tst & " " & arrParameter( i )
     End If
Wichtig ist hier der Aufruf der Prozedur 'ParameterHolen' - dadurch sind die an das VBS übergebenen Parameter in ein Array für die Verwendung im VBS eingelesen.

Zeilen 23 .. 26 For..Next-Schleife zur Verwendung der Parameter.

     For i = ...
       ...arrParameter( i )...
     Next
Und so werden die Parameter einfach nur aneinander gereiht:

     Tst = Tst & " " & arrParameter( i )
Sind die Parameter Dateinamen mit kompletten Pfad, wird zu jeder Datei das Änderungsdatum in je einer Zeile (in der Variable 'Tst') abgelegt, weil bei jedem Parameter die Prozedur 'DateiDatumTest()' diese Information zurück gibt:

     Tst = Tst & DateiDatumTest( arrParameter( i ) ) & vbCRLF
Zeilen 30 ist auskommentiert (durch das Hochkomma am Zeilenanfang) und könnte den Inhalt der Variable 'Tst' (für 12s) anzeigen.

     ' CreateObject("WScript.Shell").PopUp ...
Zeilen 35 schreibt den Inhalt der Variable 'Tst' in die Ergebnisdatei.

     ErgebnisSchreiben(Tst)
Zeilen 28 Ist (noch) eine Leerzeile und könnte für Testzwecke

     ArrayZeigen(arrParameter)
erhalten. Dadurch wird der Inhalt des Array angezeigt, das die Aufruf-Parametern beinhaltet. Auch diese Prozedur ist Bestandteil der Datei 'WinTuC.Prozeduren'.

Welche Prozeduren in der Datei 'WinTuC.Prozeduren' alles enthalten sind, ist in der 'WinTuC_vbs.vbs' durch die enthaltene Prozedur 'WinTuCProzedurenSchreiben' definiert. Eine Auswahl der in 'WinTuC.Prozeduren' enthaltenen Prozeduren:

     WMIpingOK()
     WMIDateStringToDateYear2()
     RemoteSysDriveShare()
     ParameterHolen()
     WMIDateStringToDateNoYear()
     WMIWinVer()
     ErgebnisSchreiben()
     WMIDateStringToDate()
     RemoteWinDir()
     RemoteSystemDrive()
     DMTFToDeTime()
     DateilisteHolenMitDatumUndName()
     QuickSort()
     DateiDatumTest()
     ArrayZeigen()

↑ zum Seitenanfang ↑

5. Anzeige des Ergebnisdatei-Inhalt

'WinTuC_vbs.vbs' sammelt die Informationen aus den Ergebnisdateien und bereitet die Daten vor dem Abspeichern in die Datei 'WinTuC.xml' auf - 'WinTuC.hta' übernimmt die Anzeige. Dafür überwacht 'WinTuC.hta' Änderungen an der 'WinTuC.xml' und Aktualisiert dann die Anzeige.

Für jedes Programm fügt 'WinTuC.hta' einen Block ein. Die ersten beiden Zeilen enthalten den Namen der [Aufgaben].xml; die zweite Zeile den Namen des Programms. Nach einer Leerzeile folgen die ersten vier Zeilen der Ergebnisdatei (vergl. Beispiele 3 bis 5.)

(Feb. 2009: Weitere Zeilen werden noch nicht ausgewertet und/oder angezeigt.)

In 'WinTuC_vbs.vbs' ist die Anzahl der Zeichen (für den variablen Bereich im Block; vier Zeilen) von 'WinTuC.hta' festgelegt. (Vergl. Parameter 'MaxZeichenJeBlock' in 'WinTuC.xsl' und 'WinTuC_vbs.vbs') Die Daten der Ergebnisdatei werden zeilenweise eingelesen. In jedem 'WinTuC.hta' - Block werden max. vier Zeilen (mit variablen Inhalt) angezeigt. Ist eine Zeile so lang, dass der komplette variable Bereich ('MaxZeichenJeBlock') ausgefüllt ist, erscheint der 'Rest' und die folgenden Zeilen nicht in der Anzeige.

Ist das Ergebnis eine Auflistung und die Datensätze sind mit einem Semikolon (;) getrennt, werden so viel wie möglich komplette Datensätze angezeigt.

↑ zum Seitenanfang ↑

6. Eigene Programme testen

Die Tests von eigenen Programmen gestaltet sich etwas langwierig, wenn man bereits bei der Programmierung dafür WinTuC verwendet - nicht nur, weil die Ergebnisdateien nach immer gleich gelöscht werden.

Aus diesem Grund ist eine CMD hilfreich, die den Start eines Programms übernimmt. Auch hier wieder ein Beispiel


Beispiel 8 - Inhalt der CMD-Datei

     start wscript.exe "%~dp0! Beispiel_Baustelle.vbs" DeinPC 17 ~systemdrive~\boot.ini
Mit 'start wscript.exe' wird das VBS gestartet, die Eingabeaufforderung (DOS-Prompt; das schwarze Fenster) aber schließt sich sofort, ohne das Ende des gestarteten VBS abzuwarten.

Gestartet wird hier das VBS '! Beispiel_Baustelle.vbs' (der Dateiname beginnt mit einen Ausrufezeichen, gefolgt von einem Leerschritt). Beim Start erhält das VBS drei Parameter:
     1. 'DeinPC' - als ZielPC-PCName
     2. '17' - die Test-Nummer
     3. '~systemdrive~\boot.ini'
Das VBS prüft zunächst, ob der ZielPC per WIM-Ping erreichbar ist - antwortet der ZielPC nicht, endet das VBS bereits hier, nachdem die 'Nichterreichbarkeit' in der Ergebnisdatei dokumentiert wurde:
   17_DeinPC_! Beispiel_Baustelle.vbs.dat
(Die VBS-Beschreibung bis hierher ist nicht im VBS selbst nach zu lesen, sondern wird mit der 'Execute CreateObject()'-Anweisung aus den ersten Zeilen der Datei 'WinTuC.Prozeduren' ausgeführt. )

Nach einer erfolgreichen WMI-Ping-Anfrage an den ZielPC (der ZielPC hat geantwortet), werden in diesem VBS alle Parameter aus dem Array (in diesem Fall ein Parameter in einem einzeiligem Array) an die Variable 'Tst' übergeben und abgespeichert - natürlich in die Datei
   17_DeinPC_! Beispiel_Baustelle.vbs.dat

↑ zum Seitenanfang ↑

7. Eigene [Aufgabe].XML erstellen - Conficker erkennen

Dem Anspruch, den Conficker-Wurm sicher zu erkennen, wird dieses Beispiel sicher nicht gerecht. Hier soll aber aufgezeigt werden, wie einfach sich mitunter ein Problem mit in einer [Aufgabe].XML beschreiben lässt.

Aus der technische Anleitung zum Entfernen von Conficker.B kann man entnehmen, dass der Conficker-Wurm häufig Zeitplandienste erstellt und 'eigentlich' keine Chance hat, wenn auf einem WinXP-PC das ServicePack 3 (Sp3 = KB936929; WinXP Sp2 braucht KB958644) installiert ist.

Das installierte ServicePack ist bereits bei den Erreichbarkeitstests in 'WinTuC - Status' zu erkennen. Trotzdem soll auf die beiden (zu erwartenden) KB-LOG-Datei geprüft und die zeitlich geplanten Aktivitäten angezeigt werden. Damit hat man relativ schnell einen groben Überblick, ob der Conficker-Wurm unterwegs sein könnte oder evtl. bereits aktiv ist.

Den Aufbau und weitergehende Infos finden sich in der [Aufgabe].XML:
   Conficker-Wurm prüfen.xml

↑ zum Seitenanfang ↑

8. Für Experten

Die erweiterten Möglichkeiten sind 'nur' in der WinTuC_cfg.xml beschrieben: 'Automatik-Modus' und 'Ergebnis an Email'.

↑ zum Seitenanfang ↑

© 2013 by dieseyer • all rights reserved • www.wintuc.de
Impressum   Feedback