Ping-Befehl mit FIND-Pipe in IF-Befehl einbauen
Schöne Grüße an die Community,,
derzeit bereitet mir eine simple Anforderung arge Probleme. Ich hoffe mit dem Wissen aus dem Kollektiv diese abschließen zu können.
Vorweg möchte ich erwähnen das ich in Sachen Scripts und Entwicklung lediglich ein leichtes Grundwissen habe.
Ist-Zustand:
Ein Kunde hat ein Netzwerk mit zwei getrennten Netzen. Intranet und Internet. Beide Netze laufen auf einer UTM-Appliance zusammen.
Intranet - Für Clients nahezu alle Ports ins Internet gesperrt, lediglich Teamviewer ist freigeschaltet. Server (außer TSRV) haben gefilterten Vollzugriff. TSRV wird als Client behandelt.
Internet - Unbeschränkter jedoch gefilterter Zugriff ins Internet
Anforderung:
Auf dem TSRV soll im Stundentakt via Scheduler ein Script laufen. In diesem Script wird geprüft ob die Internetverbindung offen ist oder nicht, und dies als Errorlevel zurückgeben. Hintergrund ist dass wir durch einen Bug vor kurzem unbeschränkten Zugriff aus dem Intranet ins Internet für die Clients hatten was so nicht wieder vorkommen darf. Dieses möchten wir nun überwachen.
Vom Script her habe ich versucht über einen If-Befehl in Kombination mit einem Ping und Find-Befehl ein eigenes Errorlevel zu erstellen da die Ping-interne Errorlevel-Rückgabe für unsere Anforderung nicht geeignet ist.
Der Ping-Befehl ansich funktioniert und gibt auch den gewünschten Wert zurück:
Rückgabe in diesem Fall = 3
Den Ping-Befehl habe ich nun versucht in einen IF-Befehl zu bringen um anhand der Rückgabe den Errorlevel zu bilden.
Rückgabe hier ist "nicht" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
Vermutlich hat die IF-Textzeile bei dem Errorlevel auch noch Fehler drin, diese kann ich jedoch noch nicht auswerten da mir das Script bereits beim Ping einen Abbruch bringt.
Grüße aus Buchholz
Thraex
derzeit bereitet mir eine simple Anforderung arge Probleme. Ich hoffe mit dem Wissen aus dem Kollektiv diese abschließen zu können.
Vorweg möchte ich erwähnen das ich in Sachen Scripts und Entwicklung lediglich ein leichtes Grundwissen habe.
Ist-Zustand:
Ein Kunde hat ein Netzwerk mit zwei getrennten Netzen. Intranet und Internet. Beide Netze laufen auf einer UTM-Appliance zusammen.
Intranet - Für Clients nahezu alle Ports ins Internet gesperrt, lediglich Teamviewer ist freigeschaltet. Server (außer TSRV) haben gefilterten Vollzugriff. TSRV wird als Client behandelt.
Internet - Unbeschränkter jedoch gefilterter Zugriff ins Internet
Anforderung:
Auf dem TSRV soll im Stundentakt via Scheduler ein Script laufen. In diesem Script wird geprüft ob die Internetverbindung offen ist oder nicht, und dies als Errorlevel zurückgeben. Hintergrund ist dass wir durch einen Bug vor kurzem unbeschränkten Zugriff aus dem Intranet ins Internet für die Clients hatten was so nicht wieder vorkommen darf. Dieses möchten wir nun überwachen.
Vom Script her habe ich versucht über einen If-Befehl in Kombination mit einem Ping und Find-Befehl ein eigenes Errorlevel zu erstellen da die Ping-interne Errorlevel-Rückgabe für unsere Anforderung nicht geeignet ist.
Der Ping-Befehl ansich funktioniert und gibt auch den gewünschten Wert zurück:
ping -n 3 google.de | find /C "Zielanschluss nicht erreichbar"
Den Ping-Befehl habe ich nun versucht in einen IF-Befehl zu bringen um anhand der Rückgabe den Errorlevel zu bilden.
if "ping -n 3 google.de | find /C \"Zielanschluss nicht erreichbar\"" == 3 set errorlevel=0 else set errorlevel=1
Vermutlich hat die IF-Textzeile bei dem Errorlevel auch noch Fehler drin, diese kann ich jedoch noch nicht auswerten da mir das Script bereits beim Ping einen Abbruch bringt.
Grüße aus Buchholz
Thraex
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 290681
Url: https://administrator.de/forum/ping-befehl-mit-find-pipe-in-if-befehl-einbauen-290681.html
Ausgedruckt am: 21.04.2025 um 17:04 Uhr
3 Kommentare
Neuester Kommentar

Moin.
Ping auswerten ist Fehleranfällig zumal ist es dann meist sprachabhängig ist. Einen Ping machst du auf der CMD am besten sprachunabhängig über die WMI-Klasse Win32_PingStatus
Siehe auch
Automatische Ping schleife
Gruß grexit
Ping auswerten ist Fehleranfällig zumal ist es dann meist sprachabhängig ist. Einen Ping machst du auf der CMD am besten sprachunabhängig über die WMI-Klasse Win32_PingStatus
wmic PATH Win32_PingStatus where Address='8.8.8.8' get StatusCode /format:list | find "StatusCode=0" >nul && echo Internet=OK || echo Internet=FEHLER
Automatische Ping schleife
Gruß grexit