Batch Geräte anpingen

T

tx_g

Gast
Hallo,
ich brauche mal wieder eure Hilfe.

Ich habe hier ein Script, welches mir verschiedene PCs anpingen soll, um zu bestimmen ob sie an oder aus sind. Eigentlich sollte das Script so funktionieren, allerdings wird nichts ausgegeben Bild von der Ausgabe.


Hier ist der Code:
Code:
@echo off
cls
set d1=192.168.2.1
set d2=192.168.2.1
set d3=192.168.2.1
set d4=192.168.2.1
set d5=192.168.2.1
:goto dev1

:dev1
ping %d1% -n 1
if not errorlevel 1 set error1=online
if errorlevel 1 set error1=offline
echo %d1% ist %error1%
goto dev2

:dev2
ping %d2% -n 1
if not errorlevel 1 set error2=online
if errorlevel 1 set error2=offline
echo %d2% ist %error2%
goto dev3

:dev3
ping %d3% -n 1
if not errorlevel 1 set error3=online
if errorlevel 1 set error3=offline
echo %d3% ist %error3%
goto dev4

:dev4
ping %d4% -n 1
if not errorlevel 1 set error4=online
if errorlevel 1 set error4=offline
echo %d4% ist %error4%
goto dev5

:dev5
ping %d5% -n 1
if not errorlevel 1 set error5=online
if errorlevel 1 set error5=offline
echo %d5% ist %error5%
timeout /t 2 /NOBREAK
goto dev1
 
Zuletzt bearbeitet von einem Moderator:
funktioniert bei mir Einwand frei dein code
Ergänzung ()

Ping wird ausgeführt für 192.168.1.2 mit 32 Bytes Daten:
Antwort von 192.168.1.2: Bytes=32 Zeit=309ms TTL=64

Ping-Statistik für 192.168.1.2:
Pakete: Gesendet = 1, Empfangen = 1, Verloren = 0
(0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 309ms, Maximum = 309ms, Mittelwert = 309ms
192.168.1.2 ist online

Ping wird ausgeführt für 192.168.1.4 mit 32 Bytes Daten:
Antwort von 192.168.1.138: Zielhost nicht erreichbar.

Ping-Statistik für 192.168.1.4:
Pakete: Gesendet = 1, Empfangen = 1, Verloren = 0
(0% Verlust),
192.168.1.4 ist online

Ping wird ausgeführt für 192.168.1.90 mit 32 Bytes Daten:
Antwort von 192.168.1.138: Zielhost nicht erreichbar.

Ping-Statistik für 192.168.1.90:
Pakete: Gesendet = 1, Empfangen = 1, Verloren = 0
(0% Verlust),
192.168.1.90 ist online

Ping wird ausgeführt für 192.168.1.91 mit 32 Bytes Daten:
Antwort von 192.168.1.91: Bytes=32 Zeit<1ms TTL=64

Ping-Statistik für 192.168.1.91:
Pakete: Gesendet = 1, Empfangen = 1, Verloren = 0
(0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms
192.168.1.91 ist online
Ping-Anforderung konnte Host "192.168.1s.1" nicht finden. Überprüfen Sie den Namen, und versuchen Sie es erneut.
192.168.1s.1 ist offline

Gewartet wird 0 Sekunden. Drücken Sie STRG+C, um den Vorgang zu beenden...
 
Das Skript sieht gut aus und sollte so auch funktionieren. Ich würde aber die Ping-Ausgabe nach "> NUL" umleiten, dann hättest Du nur die online/offline-Ausgabe.

Wie startest du das Skript?
 
jetzt versteh ich gar nichts mehr :freak:
Hab das gerade mal auf meinen 3 PCs ausgetestet (Win10) aber nirgends scheint es zu funktionieren.

Starten nur mit Doppelklick auf die .bat Datei
Ergänzung ()

Ah hab es.
Muss es nur als Administrator ausführen :D
Dankeschön
 
Zuletzt bearbeitet von einem Moderator:
Auf meinem Desktop, also unter C:
Standardbenutzer keine Administrator rechte.
 
Benutzerkontensteuerung (UAC) auf der höchsten Stufe? Evtl. dem User das Recht Skripte auszuführen genommen?
 
Nicht das ich wüsste. Ist eigentlich ne Windows Neuinstallation, ohne irgendwelche Veränderungen. Ich kann das aber mal überprüfen.
 
Ich würde es ja sowieso eher in der Powershell schreiben - braucht weniger Zeilen und ist wartbarer:

Code:
# Hier alle Adressen oder Computernamen angeben
$Adressen = "192.168.100.1","192.168.10.2","192.168.10.16","192.168.10.30"
# wird benötigt für die wiederholte Ausführung
$i = 0

do {
    foreach ($adresse in $Adressen) {
        if (Test-Connection $adresse -count 1 -quiet) {
            Write-Host $adresse " ist online"
        }
        ELSE {
            Write-Host $adresse " ist offline"
        }
    }
}
until ( $i -eq 1 )
 
Zurück
Oben