pemi
Goto Top

Mit Batch Netzwerkverbindung prüfen

Hallo Leute,

wie kann ich per Batch prüfen ob ein PC im Netzwerk zu erreichen ist bzw. ob bereits ein Netzlaufwerk zu diesem PC verbunden ist?

Es geht darum, dass mein kleines Batch-Programm Dateien zur Sicherung auf einen anderen PC kopieren soll, aber vorher prüfen soll, ob dieser PC überhaupt im Netzwerk verfügbar ist bzw. ob das Netzlaufwerk (auf das kopiert werden soll) bereits verbunden ist (sollte eig. standardmäßig verbunden sein).

Falls der PC nicht im Netz verfügbar ist, sollte eine Fehlermeldung in eine Log-Datei ausgegeben und das Programm beendet werden. Falls der PC verfügbar ist, das Netzlaufwerk aber (wieso auch immer) nicht verbunden ist, so soll dieses verbunden werden.

Danke für Eure Hilfe! Gruß

pemi

Content-ID: 38296

Url: https://administrator.de/forum/mit-batch-netzwerkverbindung-pruefen-38296.html

Ausgedruckt am: 23.12.2024 um 05:12 Uhr

leknilk0815
leknilk0815 18.08.2006 um 16:28:00 Uhr
Goto Top
Hi,

hab Dir der Einfachheit halber mein Script (danke an Biber) reinkopiert.
Es sollte Deine Anforderungen erfüllen, bei mir startet es halt noch den Rechner per WOL, wenn dieser nicht läuft, statt dessen kannst Du eine log- Datei damit befüllen.

Hier das Script:

@echo off

ping tonixp | find /i "Reply" && goto :nostart || goto :lanstart1  

:nostart

rem net use z: /d
net use z: \\tonixp\sikoneu


xcopy /D /E /Y /C /H /F d:\*.* z:\


rem net use z: /d
exit


:lanstart1
D:\usage\Sikostart\LANStartCMD.exe 00-22-2E-41-6F-14
ping -n 40 tonixp | find /i "Reply" && goto :lanstart2 || goto :lanstart1  
:lanstart2
ping -n 20 tonixp
net use z: /d

net use z: \\tonixp\sikoneu

xcopy /D /E /Y /C /H /F d:\*.* z:\

rem net use z: /d


D:\usage\Sikostart\shutdown -f -s -m \\tonixp

ping -n 10 tonixp

D:\usage\Sikostart\shutdown -f -s -m \\tonixp

ping -n 10 tonixp

D:\usage\Sikostart\shutdown -f -s -m \\tonixp

exit
pemi
pemi 18.08.2006 um 16:42:21 Uhr
Goto Top
Super, danke.
Genau das was ich gebraucht hab.
Gruß
pemi
alpha-centauri
alpha-centauri 18.08.2006 um 17:05:15 Uhr
Goto Top
respekt
leknilk0815
leknilk0815 18.08.2006 um 17:37:15 Uhr
Goto Top
eines in dem Script hab ich noch vergessen zu erwähnen:

wenn Du eine deutsche OS- Version verwendest, musst Du im Script den Begriff "Reply" ersetzen durch "Antwort" (ping englisch / deutsch unterschiedlich)
AxelHahn
AxelHahn 18.08.2006 um 18:22:18 Uhr
Goto Top
Nachtrag:
(1) um zu prüfen, ob das Backup-Verzeichnis da ist, kann man ein dir auf den UNC-Namen machen. Im Fehlerfall schreibt man ins Log, dass der Rechner nicht da war
(2) Zum Kopieren von Daten braucht man das Remote-Verzeichnis nicht zu verbinden. Wenn man nur die Differenz der Verzeichnisse abgleichen will, sollte man Robcopy nehmen (ist imMS Ressource Kit - findet man aber auch so im Netz - Version 1.96 glaube ich).



Viele Grüsse
-= Axel =-
Biber
Biber 18.08.2006 um 18:50:12 Uhr
Goto Top
Moin pemi,

Zwei Fussnoten noch zu leknilk0815s Beispiel und Ping mit "Reply"/"Antwort"

1) Eigentlich reicht Dir ja vom Ping-Befehl die Rückmeldung: "Hat geklappt"/"Hat nicht geklappt".
Also würde auch im obigen Beispiel reichen
(ping tonixp >nul)|| goto :lanstart1
...das reicht vollkommen, und es ist völlig egal, ob in der Ping-Ausgabe "Antwort" oder "Reply" oder "Gottfried" steht.

2) Bevor Du es aber darauf verkürzt:
Bei einigen ausgelieferten Ping.exe-Versionen hat M$ offensichtlich ausnahmsweise auf die Qualitätssicherung verzichtet...
Da liefert die Ping.exe bei einem "Kann-Server-nicht-erreichen"-Fall den ErrorLevel 0 (=alles prima).

Also vorher einmal testen am Cmd-Prompt:
(ping www.web.de>nul) || echo www.web.de nicht erreicht
(ping www.diesenServerGibtEsNicht.de>nul) || echo www.diesenServerGibtEsNicht.de nicht erreicht
Du solltest, wenn Deine Ping.exe OK ist, EINE Ausgabe bekommen (Fall 2).
Falls nicht: Dann verwende die Ping-Find-Mimik, wie von Toni skizzert.

Gruß
Biber
P.S. Ich formatiere mal Toni's Code als code.
leknilk0815
leknilk0815 18.08.2006 um 19:37:52 Uhr
Goto Top
@Biber:
Danke für die Formatierung, nun sieht's ja fast schon professionell aus
(ich wollt halt nicht übertreiben...)

Gruß aus Tölz - Toni