skbasel
Goto Top

Batch-File - Prüfen ob ein Remotecomputer erreichbar ist

Dienste werden Mithilfe von einer Batch-Datei über remote gestartet.

Hallo,
Ich habe eine Batch-Datei erstellt um damit Dienste über Remote zu starten. Dies funktioniert auch alles soweit, aber wenn einer der Computer Offline oder sonst nicht erreichbar ist bleibt es hier hängen und startet die restlichen Dienste nicht.

title start services

sc \\PC1 start MMS

sc \\PC2 start MMS

sc \\PC3 start MMS

sc \\PC4 start MMS

pause


Wenn jetzt hier z.b. PC2 nicht läuft und deshalb nicht erreichbar ist werden die Dienste auf PC3 und PC4 nicht gestartet. Wie kann ich jetzt überprüfen ob der Computer läuft und wenn nicht, sollte es mit PC3 weitergehen.
Kann mir da jemand helfen?

Danke

Content-Key: 174270

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

Printed on: April 23, 2024 at 19:04 o'clock

Member: BigWim
BigWim Oct 07, 2011, updated at Oct 18, 2012 at 16:48:41 (UTC)
Goto Top
Moin skbasel,

sieh Dir dieses Beispiel mal an

Gruß
Markus
Member: skbasel
skbasel Oct 07, 2011 at 07:13:17 (UTC)
Goto Top
Danke, aber diese Lösung will bei mir leider nicht funktionieren...


for /f %%a in ('ping AUTOMOTIVE_TEST ^|find /C "Antwort von"') do(
if %%a EQU 4 (
sc \\AUTOMOTIVE_TEST start MMS)
else (
goto a2)
)

for /f %%a in ('ping CHBSJAQM001 ^|find /C "Antwort von"') do(
if %%a EQU 4 (
sc \\CHBSJAQM001 start MMS)
else (
goto a3)
)

:a3
sc \\CHBSJAQW030 start MMS


Oder hab ich einen Fehler gemacht?
Member: BigWim
BigWim Oct 07, 2011 at 07:24:36 (UTC)
Goto Top
Probiere es mal so:

call :RunServices PC1
call :RunServices PC2
goto :eof

:RunServices
Set host=%1
ping -n 1 -w 5 %host% | find /i "Antwort" >NUL: && (sc \\%host% start MMS) || (@echo %host% ist offline)   
goto :eof
Member: skbasel
skbasel Oct 07, 2011 at 07:39:47 (UTC)
Goto Top
C:\Users\admmst\Desktop>call :RunServices VM-EOL2

C:\Users\admmst\Desktop>Set host=VM-EOL2


C:\Users\admmst\Desktop>goto :eof

C:\Users\admmst\Desktop>call :RunServices AUTOMOTIVE_TEST

C:\Users\admmst\Desktop>Set host=AUTOMOTIVE_TEST


C:\Users\admmst\Desktop>goto :eof

C:\Users\admmst\Desktop>pause
Press any key to continue . . .


Hm, es sieht zwar gut aus.. aber irgendwie sagt der mir dann immer "offline".
VM-EOL2 ist wirklich offline, aber Automotive_test ist online..

Woran liegt das? Ich bin als Admin in einer Domain eingeloggt.
Und die Dienste werden nicht gestartet.. face-sad
"sc \\AUTOMOTIVE_TEST start MMS " alleine startet den Dienst.
Danke für die Antworten!

Gruss
Member: BigWim
BigWim Oct 07, 2011 at 08:04:27 (UTC)
Goto Top
Hallo skbasel,

Woran liegt das?
Mit den vorhandenen Informationen zu beurteilen, wo der Fehler liegt, ist von dieser Seite des Bildschirms schwierig - zumindest für mich.

Das -w steht für ein Zeitlimit - vielleicht hast Du längere Pingzeiten? Hilfreich ist auch ping /?.
Die Umleitung >NUL: verhindert die zusätzliche Ausgabe von ping.

Führe doch mal in der DosBox diese Zeile aus:
ping -n 1 AUTOMOTIVE_TEST | find /i "Antwort"  && (sc \\AUTOMOTIVE_TEST start MMS) || (@echo AUTOMOTIVE_TEST ist offline)  
Vielleicht kannst Du jetzt erkennen, was los ist ...

Gruß
Markus
Member: skbasel
skbasel Oct 07, 2011 at 08:45:35 (UTC)
Goto Top
Kommt irgendwie genau das selbe raus.. ich habs jetzt einfach so gelöst: 1 Batch Datei welche die anderen Batch Dateien startet. Da es so oder immer nur 10-15 Computer sind auf denen der Dienst laufen muss. Aber trotzdem Danke für deine Hilfe.
Mitglied: 60730
60730 Oct 07, 2011 at 12:03:22 (UTC)
Goto Top
moin,

nur mal so eine Idee...

  • jeder, außer dem TO benutzt Code Tags <code>hier steht was drin</code>
  • Ein erfolgreicher Ping bedeutet per anno garnix.
  • das stumpfe Starten eines Dienstes - ohne zu prüfen, ob der aktiv ist, mag auch eine Lösung sein, die einem in jedem Tankstellencomputermagazinforum von der goldenen Anna Nass höchstpersönlich verliehen wird.
  • Fragen zu stellen, auf Antwort hoffen und dann eine ganz andere Lösung zu bauen - und die dann nicht hier zu veröffentlichen - ist alles andere, als die Pfadfinder mit Ihrer guten Tat pro Tag propagieren.

Gruß
Mitglied: 60730
60730 Oct 07, 2011 at 14:02:33 (UTC)
Goto Top
Moin,

auf deinen speziellen PN Wunsch...

Rechner.txt
PC1
PC2
PC3
PC4

Steuerbatch
for /f %%a in (Laufwerk:\pfad\rechner.txt) do (
                  if exist \\%%a\c$\boot.ini sc \\%%a query MMS|find "RUNNING" && echo MMS auf Rechner %%a war bereits gestartet ||sc \\%%a start MMS && echo MMS auf Rechner %%a gestartet  
                  if not exist \\%%a\c$\boot.ini echo Kiste %%a ist aus nix mit Nicolaus
)
"So" macht das etwas mehr Sinn.

Das es mehr als dieses "Ding" braucht oder es voll in die Grütze haut, wenn ein Client nicht vorhanden ist - bezweifel ich.
Dass es ein falsepositive meldet - wenn die Kiste den Dienst MMS garnicht kennt/starten kann - vermute ich.

Daher


Gruß