# Skript gesucht: Server fährt nach Abfrage, ob noch Rechner online sind, runter



## Linus_pauling (27. April 2010)

Hallo,

ich habe einen Rechner unter Windows XP, den ich als Fileserver nutze.
Dieser Rechner soll nun, wenn ihn niemand mehr benötigt, also alle Rechner im Netz (5 Stück) aus sind, herunterfahren.
Geweckt wird er per WOL über die Autostart (Das geht schon).

Weiß jemand, wie ich das möglichst mit Boardmitteln realisieren könnte?

Danke
Linus


----------



## Linus2 (27. April 2010)

Hier mal ein Lösungsansatz, der allerdings nur einen Rechner im Netz abfragt, ich habe ja 5...

del /f C:\ping.txt
:Mon
ping http://www.web.de >C:\ping.txt
findstr "Zielhost nicht erreichbar" C:\ping.txt
if %ERRORLEVEL% == 0 goto shutdown
findstr "berschreitung der Anforderung" C:\ping.txt
if %ERRORLEVEL% == 0 goto shutdown
ping -n 30 localhost >nul
goto Mon
:shutdown
shutdown /s /f /t 05

Das Script macht einen Ping auf Web.de, speichert das Ergebnis in C:\ping.txt und durchsucht diese Datei nach "Zielhost nicht erreichbar" und "berschreitung der Anforderung" (ü mag Cmd gar nicht! ).
Wird eine dieser Zeichenfolgen gefunden, so wird der ERRORLEVEL Null bleiben, ansonsten wird er auf Eins gesetzt.
Dieser ERRORLEVEL wird in den beiden if-Zeilen abgefragt, falls er Null ist, springt das Script zur Marke :shutdown und fährt den PC nach 5 sek. herunter
Ansonsten legt das Script eine Pause von 30 sekunden ein und springt dann zur Marke :Mon und wiederholt alles.


----------



## deepthroat (27. April 2010)

Hi.

Du kannst es noch etwas vereinfachen:

```
@echo off

:loop

for %h in (192.168.1.2 192.168.1.3) do (
  ping -n 1 %h >nul
  if NOT ERRORLEVEL 1 goto wait
)
goto shutdown

:wait
# sleep 30 seconds
ping -n 31 -w 1000 localhost
goto loop

:shutdown
shutdown /s /f /t 05
```
Gruß


----------

