tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1836
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Muckel1986 Muckel1986 ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Ort
    Salzgitter, Germany, Germany
    Beiträge
    190
    Guten Abend zusammen,

    in meinem Ausbildungsbetrieb gibt es das Problem, dass das Internet welches (leider) eine andere IT-Firma betreut kaum verfügbar ist. Da eine kaufmännische Abteilung nun Sachen über das Internet versteigern sollen, brauchen sie einen funktionierenden Internet-Zugang. Jener wird über den Internen Server aufgebaut. Wenn er (bzw. seine Firewall) funktioniert, wird man bei'm aufrufen einer Webseite auf die Firewallseite gelenkt und muss dort seinen Benutzernamen und Passwort eingeben und dann kommt man auf die angeforderte Seite. Auch im Fehlerfall funktioniert die anmeldung, aber Webseiten sind nicht erreichbar.

    Nun habe ich die Aufgabe bekommen, dass ganze mit Windows eiegnen Mitteln zu dokumentieren. Zu diesem Zweck habe lade ich bei'm Windowsstart eine *.vbs Datei, die wiederum eine *.bat aufruft, in der das eigentliche Script ist. Eine zweite *.vbs Datei habe ich für die Wiederholungszeit genommen. Mit der *.bat Datei führe ich nun drei pings durch:
    1. internen Server
    2. google.de
    3. chip.de
    Und leere dann den DNS-Cache des Clients, damit man nicht sagen kann, dass es am Client liegt.

    Für jeden ping-Befehl habe ich eine Variable mit dem errorlevel bestimmt. Am Ende der *.bat Datei möchte ich dann getreu dem Grundsatz "wenn dann sonst" eine "Statusmeldung" in die fehler.txt oder in die erfolg.txt schreiben. Doch genau dabei gibt es noch Probleme.

    Zwar wird eine ping.txt gestellt in die ich mir den ping-Befehl ausgeben lasse, aber die if-Bedingungen klappen danach nicht. Eine fehler.txt wird zwar erstellt, aber keine erfolg.txt. Meine *.bat schaut zurzeit so aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    
    @ECHO OFF
    cd C:\
    cd C:\ueberwachung
    md C:\ueberwachung\ergebnis\
    :ueberwachung
    REM Zeitverzoegertes wiederholen
    wscript warten.vbs
     
    REM Datum und Zeit in das Format xx.xx.xxxx xx:xx:xx einrichten
    set datum=%date:~0%
    set zeit=%time:~0,8% 
     
    REM PING zu der IP des "BBW Servers"
    ping -n 1 10.10.10.1 >> C:\ueberwachung\ergebnis\ping.txt
        REM Errorlevel in eine Variable speichern
        set BBW=%errorlevel%
     
    REM PING zu der IP des "www.google.de"
    ping -n 1 www.google.de >> C:\ueberwachung\ergebnis\ping.txt
        REM Errorlevel in eine Variable speichern
        set GOOGLE=%errorlevel%
     
    REM PING zu der IP des "www.chip.de"
    ping -n 1 www.chip.de >> C:\ueberwachung\ergebnis\ping.txt
        REM Errorlevel in eine Variable speichern
        set CHIP=%errorlevel%
     
    REM leeren des DNS-Caches um zu gefährleisten, dass es nicht am Client liegt
    ipconfig /flushdns >> C:\ueberwachung\ergebnis\ping.txt
     
    if "%BBW%" == 1 ( echo "%datum% %zeit% BBW-Server erfolgreich" >> C:\ueberwachung\ergebnis\erfolg.txt )
        ELSE ( echo "%datum% %zeit% BBW-Server fehlerhaft" >> C:\ueberwachung\ergebnis\fehler.txt )
     
    if "%GOOGLE%" == 1 ( echo "%datum% %zeit% GOOGLE-Server erfolgreich" >> C:\ueberwachung\ergebnis\erfolg.txt )
        ELSE ( echo "%datum% %zeit% GOOGLE-Server fehlerhaft" >> C:\ueberwachung\ergebnis\fehler.txt )
     
    if "%CHIP%" == 1 ( echo "%datum% %zeit% CHIP-Server erfolgreich" >> C:\ueberwachung\ergebnis\erfolg.txt )
        ELSE ( echo "%datum% %zeit% CHIP-Server fehlerhaft" >> C:\ueberwachung\ergebnis\fehler.txt )
     
    cls
    goto ueberwachung

    Hoffe ihr könnt mir dabei helfen, denn das Script sollte morgen eigentlich starten.
    Vielen Dank
    Muckel
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Der String "1" ist natürlich nicht gleich 1.

    Code :
    1
    2
    3
    4
    5
    
    if %GOOGLE% equ 1 (
      echo ...
    ) else (
      echo 
    )
    Aber warum in aller Welt machst du das denn nicht gleich in VBScript, das ist doch viel einfacher?

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Muckel1986 Muckel1986 ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Ort
    Salzgitter, Germany, Germany
    Beiträge
    190
    Guten Morgen,

    das Problem ist gelöst und funktioniert nun. Eine ausführliche Erklärung gibt es in meinem kleinen Wiki. Die Hauptdatei hat folgenden Quellcode:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    
    @ECHO OFF 
    CD /D C:\ueberwachung 
    MD %CD%\ergebnis\ 
    SET FileOK=%CD%\ergebnis\erfolg.txt 
    SET FileER=%CD%\ergebnis\fehler.txt 
    SET FilePI=%CD%\ergebnis\ping.txt 
    :ueberwachung 
    REM Zeitverzoegertes wiederholen 
    wscript warten.vbs 
    REM Datum und Zeit in das Format xx.xx.xxxx xx:xx:xx einrichten 
    SET datum=%date:~0% 
    SET zeit=%time:~0,8%  
     
    ECHO PING zu der IP des "BBW Servers" >> %FilePI% 
    PING -n 1 10.10.10.1 >> %FilePI% 
    REM Errorlevel in eine Variable speichern 
    SET BBW=%errorlevel% 
     
    ECHO PING zu der IP des "www.google.de" >> %FilePI% 
    PING -n 1 www.google.de >> %FilePI% 
    REM Errorlevel in eine Variable speichern 
    SET GOOGLE=%errorlevel% 
     
    ECHO PING zu der IP des "www.chip.de" >> %FilePI% 
    PING -n 1 www.chip.de >> %FilePI% 
    REM Errorlevel in eine Variable speichern 
    SET CHIP=%errorlevel% 
     
    REM leeren des DNS-Caches um zu gefährleisten, dass es nicht am Client liegt 
    ipconfig /flushdns >> %FilePI% 
     
    REM Abschließen der Datei
    ECHO. >> %FilePI%
    ECHO ------------------------------------------------------------ >> %FilePI%
    ECHO. >> %FilePI%
    REM Fehlerauswertung 
    IF %BBW% == 0 ( echo %datum% %zeit% BBW-Server erfolgreich >> %FileOK% ) ELSE ( echo %datum% %zeit% BBW-Server fehlerhaft >> %FileER% ) 
    IF %GOOGLE% == 0 ( echo %datum% %zeit% GOOGLE-Server erfolgreich >> %FileOK% ) ELSE ( echo %datum% %zeit% GOOGLE-Server fehlerhaft >> %FileER% ) 
    IF %CHIP% == 0 ( echo %datum% %zeit% CHIP-Server erfolgreich >> %FileOK% ) ELSE ( echo %datum% %zeit% CHIP-Server fehlerhaft >> %FileER% ) 
    cls 
    goto ueberwachung

    die Datei aufruf.vbs
    Code :
    1
    2
    
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run "ueberwachung.bat",0,True

    und die warten.vbs
    Code :
    1
    2
    3
    4
    5
    
    REM Zeit für die Wiederholung in Milisekunden
    wscript.sleep(60000)
    REM Zeitangaben
    REM eine Minute: 60000
    REM halbe Minute: 30000

    Die drei Datei "Überwachen" nun die Verfügbarkeit des Internets. Zu diesem Zweck wird eine fehler.txt und eine erfolg.txt erstellt in der dann jeweils die Erfolgs- oder Misserfolgsmeldung steht. Zusätzlich gibt es noch die ping.txt in der die Ergebnisse der jeweiligen PING-Befehle zu lesen sind, jene Datei wird eigentlich nicht benötigt und wurde nur angelegt, damit wir bei uns Intern noch weitere Aussagekräftigere Informationen haben.

    Viel Vergnügen mit dem Script
    Muckel/Tobias
     

Ähnliche Themen

  1. [Batch] Per Batch Textzeile auslesen und Verbindung testen?
    Von overreaction im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 15.03.08, 20:18
  2. Ping Batch file
    Von Corioc im Forum Sonstige Sprachen
    Antworten: 7
    Letzter Beitrag: 06.08.07, 22:02
  3. Netzwerk-Ping per Batch-Datei
    Von Slizzzer im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 16.08.06, 09:24
  4. Batch - Ping mit Errorlevel auf bestimmte Netzwerkkarte
    Von Rathinger im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 31.01.05, 12:22
  5. Antworten: 4
    Letzter Beitrag: 31.08.04, 22:30

Stichworte