maggo-hh
Goto Top

Mehrere Clients pingen (Batch)

Hallo Admins face-smile

Beobachte schon einige Zeit euer Forum und habe hier bis jetzt eigentlich immer Hilfe gefunden, doch nun muss ich doch mal selbst einen Beitrag schreiben...

Es geht kurz gesagt um Folgendes:
1 PC mit XP-Pro SP2
1 Lap mit Vista Home-Premium
1 Fileserver mit Win XP-Pro SP2 (also keine Domäne)

Der Server wird von den Clients via WOL gestartet und eine sync. der Daten läuft (via Anmeldescript, bzw. Autostart-Batch) DAS funzt auch face-smile

Nun möchte ich jedoch, das der Server abwechselnd die Clients "anpingt" und sobald keiner mehr antwortet in den Standby geht. Eigentlich dachte ich, mann könnte das durch eine "if %errorlevel%==1 goto standby"... regeln, doch dann ist halt die "Gefahr" gegeben, das der Server runterfährt, wenn nur ein Client offline ist, der andere jedoch noch on. Zweite Überlegung war den Errorlevel "weiter zu geben", was jedoch nicht geht wie ich mittlerweile weiß. Soll heiße ist er beim ersten Ping=1, so hat er beim 2te Ping (wenn on) wieder =0.

Kennt Ihr eine Möglichkeit das irgendwie per Batch zu lösen? Es muß sichergestellt sein, das alle Clients offline sind, vor dem Shutdown.

Schon einmal Danke für die Antworten face-smile)

Content-Key: 74845

Url: https://administrator.de/contentid/74845

Printed on: April 25, 2024 at 17:04 o'clock

Member: miniversum
miniversum Nov 29, 2007 at 20:18:10 (UTC)
Goto Top
Wie wärs damit:
@echo off
set "erreichbar=nein"

ping erste_ip >NUL
if %errorlevel% equ 0 set "erreichbar=ja"

ping zweite_ip >NUL
if %errorlevel% equ 0 set "erreichbar=ja"

if erreichbar equ nein shutdown -s
Statt erste_ip und zweite_ip halt die IP-Adressen angeben.

miniversum
Member: Maggo-HH
Maggo-HH Nov 30, 2007 at 13:44:16 (UTC)
Goto Top
Autsch *kopfklatsch*
Da stand ich jetzt aber wirklich auf dem Schlauch face-wink

So geht es denn auch...

@echo off
rem ---Variablen vergeben---
set ip1=192.168.174.xx
set ip2=192.168.174.xx
set on=nein

rem ---Ping aufrufen---
:start
ping %ip1% -n 1 -l 10 >nul
if %errorlevel% equ 0 set on=ja

ping %ip2% -n 1 -l 10 >nul
if %errorlevel% equ 0 set on=ja

rem ---auswertung der on-variable---
if %on% equ nein (goto standby) else goto start

rem ---Server geht schlafen---
:standby
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState
Danke face-smile face-smile
der Maggo