Jump to content

Ist ein, sind die Rechner im Netz present, Befehl ausführen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hallo Gemeinde,

 

wieder einmal stehe ich vor einer Wand.

 

Es muss festgestellt werden, ob und welche Rechner eines 24-er Pools im Netz von Teacher aus erreichbar sind; falls ja, da soll eine Aktion ausgeführt werden.

Das Feststellen muß muss schnell und effektiv geschehen, Netview kommt nicht in Frage, ping erscheint als ein guter Weg, gibt aber leider keinen %errorlevel% zurück.

Die Ausgabe von Ping habe ich mittels Pipeline an FIND geleitet, "Empfangen = 1" ist ganz schön, dann verlässt es mich im Moment.

for /D %%i in (R214-PC23,R214-PC02,R214-PC03,R214-PC25) do (
ping -n 1 -w 1 %%i | find /C "Empfangen = 1")

So sieht es im Moment aus. Bei positiven Testergebnis soll SetACL ausgeführt werden.

 

Hat bitte jemand einen Tipp für mich?

 

Habt Dank für Aufmerksamkeit und Rat.

 

Edgar

Geschrieben

Der Satz gibt eine 1 oder 0 zurück, wie kann ich die aber auswerten?

ping -n 1 -w 1 R214-PC25 | find /C "Empfangen = 1"

 

Möglicherweise hilf mir das weiter.

ping -n 1 -w 1 R214-PC25 | find "0% Verlust" 
if %errorlevel% equ 1 echo 1

 

Das funktioniert schon mal, warum habe ich bloss den vorstehenden Quatsch gemacht?

ping -n 1 -w 1 R214-PC25 
if %errorlevel% equ 1 echo 1

 

So scheine ich dem Ziel nahe zu sein.

for /D %%i in (R214-PC24,R214-PC25) do (
ping -n 1 -w 1 %%i 
echo %errorlevel%
if %errorlevel% equ 0 echo Kein Verlust
)

 

Leider funktioniert das mit %errorlevel% nicht in der Schleife.

 

Ein neuer Weg.

ping -n 1 -w 1 R214-PC24 && echo kein verlust

pause

for /D %%i in (R214-PC24,R214-PC25) do (
ping -n 1 -w 1 %%i && echo kein verlust
)
pause

Geschrieben

Hallo lefg,

 

probiere es mal damit:

 

set host=%0\..\host.txt

for /f %%i in (%host%) do (ping -n 1 %%i | find "Antwort" > nul ) && (@echo %%i ist online >>%0\..\ResultOnline.txt) || (@echo %%i ist offline >>%0\..\ResultOffline.txt)

pause

 

ACHTUNG: Von for /f %% bis >>%0\..\ResultOffline.txt) ist es eine Zeile, also insgesamt sind es drei.

 

Das @echo musst Du dann durch den Befehl Deiner Wahl ersetzen.

 

Viele Grüße, thumb

 

PS: Ach ja, in der Datei HOST.TXT stehen die Rechner, die Du anpingen willst.

PSS: Noch was, je nach Sprache musst "Antwort" durch "Reply" ersetzen.

Geschrieben

Hallo thumb.

 

ich danke für deine Antwort. Es wurde nun so gelöst; mit Verwendung der IP entfällt die Namensauflösung.

for /L %%i in (60,1,85) do (
ping -n 1 -w 1 192.168.1.%%i > Nul && copy c:\1SetACLPrint214.bat \\192.168.1.%%i\c$
)
pause

Gruß

 

Edgar

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...