Netzwerkerkennung per Batch
Hallo mal wieder!
Ich habe folgendes Problem:
Ich sitze an einem XP Pro Rechner in einem kleinen Netzwerk. Für die Anmeldung habe ich mir ein Batchfile gebastelt, welches mir meine Laufwerke wenn vorhanden verbindet.
Jetzt kommt es aber vor, das ich mit dem Rechner auch mal das Netzwerk wechsle.
Habe jetzt mal etwas rumprobiert...
Abfrage des Standartgateway via IPCONFIG
Um das Netzwerk in meinem Batch zu identifizieren... Allerdings finde ich die identifikation per IP nicht so richtig gut.
Kann ich nicht irgendwie den Router per MAC identifizieren? Denn der Standartgateway kann ja u.U. gleich sein.
Zudem gehe ich mal per Kabel mal per WLAN online.
Danke schon mal für die Hilfe!
MfG Sam
Ich habe folgendes Problem:
Ich sitze an einem XP Pro Rechner in einem kleinen Netzwerk. Für die Anmeldung habe ich mir ein Batchfile gebastelt, welches mir meine Laufwerke wenn vorhanden verbindet.
Jetzt kommt es aber vor, das ich mit dem Rechner auch mal das Netzwerk wechsle.
Habe jetzt mal etwas rumprobiert...
Abfrage des Standartgateway via IPCONFIG
Um das Netzwerk in meinem Batch zu identifizieren... Allerdings finde ich die identifikation per IP nicht so richtig gut.
Kann ich nicht irgendwie den Router per MAC identifizieren? Denn der Standartgateway kann ja u.U. gleich sein.
Zudem gehe ich mal per Kabel mal per WLAN online.
Danke schon mal für die Hilfe!
MfG Sam
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 32382
Url: https://administrator.de/contentid/32382
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo,
ein Auslesen der IP-Adresse des Standardgateways hast du bereits? Dann kannst du in der ARP-Tabelle anhand der IP-Adresse die MAC-Adresse des Standardgateways herausbekommen, der Befehl heisst einfach "arp". Um sicherzustellen, dass ein entsprechender Eintrag für das Gateway vorhanden ist (Einträge in die Tabelle werden erst bei Bedarf vorgenommen und in regelmässigen Abständen wieder gelöscht) solltest du das Gateway vorher nochmal pingen.
Filipp
ein Auslesen der IP-Adresse des Standardgateways hast du bereits? Dann kannst du in der ARP-Tabelle anhand der IP-Adresse die MAC-Adresse des Standardgateways herausbekommen, der Befehl heisst einfach "arp". Um sicherzustellen, dass ein entsprechender Eintrag für das Gateway vorhanden ist (Einträge in die Tabelle werden erst bei Bedarf vorgenommen und in regelmässigen Abständen wieder gelöscht) solltest du das Gateway vorher nochmal pingen.
Filipp
Hi,
ich hab mir so was auch mal "gebastelt". Allerdings viel einfacher gestrickt:
--- schnipp ---
@echo off
if exist "\\Winserver1\home" goto Verbinden
if not exist "\\Winserver1\home" goto Trennen
goto Ende
:Verbinden
net use h: \\Winserver1\home\thomas
net use k: \\Winserver1\daten
net use m: \\Winserver1\bilder
goto Ende
:Trennen
net use h: /delete
net use k: /delete
net use m: /delete
goto Ende
:Ende
exit
--- schnipp ---
Die Batch liegt im Autostart und wenn die Freigabe "home" auf dem Server mit dem Namen "Winserver1" gefunden wird, werden die Laufwerke verbunden, andernfall getrennt (falls noch vorhanden).
Dass es in einem andern Netz einen gleichen Server mit gleicher Freigabe gibt ist unwahrscheinlich.
Die Batch funktioniert egal ob ich per Kabel oder WLan verbunden bin.
Gruß,
Thomas
ich hab mir so was auch mal "gebastelt". Allerdings viel einfacher gestrickt:
--- schnipp ---
@echo off
if exist "\\Winserver1\home" goto Verbinden
if not exist "\\Winserver1\home" goto Trennen
goto Ende
:Verbinden
net use h: \\Winserver1\home\thomas
net use k: \\Winserver1\daten
net use m: \\Winserver1\bilder
goto Ende
:Trennen
net use h: /delete
net use k: /delete
net use m: /delete
goto Ende
:Ende
exit
--- schnipp ---
Die Batch liegt im Autostart und wenn die Freigabe "home" auf dem Server mit dem Namen "Winserver1" gefunden wird, werden die Laufwerke verbunden, andernfall getrennt (falls noch vorhanden).
Dass es in einem andern Netz einen gleichen Server mit gleicher Freigabe gibt ist unwahrscheinlich.
Die Batch funktioniert egal ob ich per Kabel oder WLan verbunden bin.
Gruß,
Thomas
Moin SamTrex,
kleiner Verbesserungsvorschlag:
Alle Sequenzen
... & (IF "%ERRORLEVEL%"=="0" (
kannst und musst Du kürzer schreiben als simples
&&
Beispiel hier:
NET USE P: \\192.168.0.3\Theater >NUL 2>NUL & (DIR P: >NUL 2>NUL) & (IF "%ERRORLEVEL%"=="0" (SET MEDIACENTER=%MEDIACENTER% P)
> das letzte IF "%ERRORLEVEL%"=="0" ...würde den Errorlevelwert zu Beginn der Zeile, vor Start des NET USE-Kommandos liefern.
Das willst Du aber nicht, sondern Du meintest ja den Errorlevelwert der DIR-Anweisung.
Also besser so:
NET USE P: \\192.168.0.3\Theater >NUL 2>NUL & (DIR P: >NUL 2>NUL) && SET MEDIACENTER=%MEDIACENTER% P:
Grüße
Biber
kleiner Verbesserungsvorschlag:
Alle Sequenzen
... & (IF "%ERRORLEVEL%"=="0" (
kannst und musst Du kürzer schreiben als simples
&&
Beispiel hier:
NET USE P: \\192.168.0.3\Theater >NUL 2>NUL & (DIR P: >NUL 2>NUL) & (IF "%ERRORLEVEL%"=="0" (SET MEDIACENTER=%MEDIACENTER% P)
> das letzte IF "%ERRORLEVEL%"=="0" ...würde den Errorlevelwert zu Beginn der Zeile, vor Start des NET USE-Kommandos liefern.
Das willst Du aber nicht, sondern Du meintest ja den Errorlevelwert der DIR-Anweisung.
Also besser so:
NET USE P: \\192.168.0.3\Theater >NUL 2>NUL & (DIR P: >NUL 2>NUL) && SET MEDIACENTER=%MEDIACENTER% P:
Grüße
Biber
Jepp, SamTrex
&& bedeutet "logisches UND", sprich: der vorangegangene Befehl muss OHNE Fehler, mit Errorlevel 0 beendet worden sein.
Das einfache "&" wie von Dir verwendet, beinhaltet gar keine logische Verknüpfung, sondern heißt soviel wie "mache danach auf jeden Fall..."
Also egal, ob der voran gegangene Befehl erfolgreich war oder ins Mett gehauen hat.
Grüße
Biber
&& bedeutet "logisches UND", sprich: der vorangegangene Befehl muss OHNE Fehler, mit Errorlevel 0 beendet worden sein.
Das einfache "&" wie von Dir verwendet, beinhaltet gar keine logische Verknüpfung, sondern heißt soviel wie "mache danach auf jeden Fall..."
Also egal, ob der voran gegangene Befehl erfolgreich war oder ins Mett gehauen hat.
Grüße
Biber