Seite 1 von 1

Skript, um Rechner runterzufahren

Verfasst: 29.05.2014, 12:26
von markus.weih
Guten Tag ich bin neu hier und sicher ein schlechter Programmierer.
Habe folgendes Windows-Netzwerkproblem:
Ich habe 3 Clients. Der Server soll von einem Client heruntergefahren
werden (da weiss ich wie das geht), aber nur wenn die anderen schon aus sind.
Ich habe es mitVariablen versucht, die werden aber immer auf 0 gesetzt.
Könnt ihr mir weiterhelfen?

Re: Skript, um Rechner runterzufahren

Verfasst: 02.06.2014, 17:41
von schmidtsmikey
Du kannst uns sicherlich mal Deinen Skript geben. Einfach hier in den Post reinschreiben...

Re: Skript, um Rechner runterzufahren

Verfasst: 03.06.2014, 11:40
von markus.weih
Unten mein Skript. Der Zähler, der Clients prüft, die an sind, geht nicht.

Code: Alles auswählen

REM Skript, das prüft, wieviele Clients noch an sind und dann Server runterfährt, wenn andere aus.

@ECHO OFF
cls

set /A an=0
REM an = Anzahl von Clients, die an sind.

echo Anzahl von Clients, die an sind, vor Net view: %an%

PAUSE

REM PC1=192.168.100.5 PC2=.4 PC3=.6 Alter Server= .1
set me=PC1
REM Parameter zur Festlegung des PCs, auf dem Skript

net view \\192.168.100.1 >nul 2>nul
if errorlevel 0 (GOTO count)
net view \\192.168.100.4 >nul 2>nul
if errorlevel 0 (GOTO count)
net view \\192.168.100.6 >nul 2>nul
if errorlevel 0 (GOTO count) 

:count
cls
SET /A %an% + 1
ECHO Anzahl Rechner an: %an%
PAUSE
GOTO EOF

echo Anzahl von Arztrechnern, die an sind nach Net view: %an%
PAUSE

REM shutdown
cls
Rem shutdown -s -f -m \\%192.168.100.1% -c "Server wird runtergefahren"
Echo Server = EEG-Archiv wird runtergefahren

REM shutdown -s -f -m \\%me% -C "Eigener Rechner wird runtergefahren in 3 Min." -t 180
REM eigener Rechner runter, AChtung nicht Server!
PAUSE
GOTO EOF

Re: Skript, um Rechner runterzufahren

Verfasst: 03.06.2014, 19:30
von schmidtsmikey
Hmm... wenn ein Server nicht erreichbar ist, springt er zu COUNT und dann nicht mehr zurück. Dein Ergebnis dürfte maximal 1 sein. Richtig?

Du brauchst sowas hier (ungetestet)

Code: Alles auswählen

net view \\192.168.100.1 >nul 2>nul
if errorlevel 0 (SET /A %an% + 1)
net view \\192.168.100.4 >nul 2>nul
if errorlevel 0 (SET /A %an% + 1)
net view \\192.168.100.6 >nul 2>nul
if errorlevel 0 (SET /A %an% + 1)