Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Netzwerkerkennung per Batch

Frage Entwicklung Batch & Shell

Mitglied: SamTrex

SamTrex (Level 1) - Jetzt verbinden

14.05.2006, aktualisiert 17.05.2006, 7543 Aufrufe, 9 Kommentare

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!

Mit freundlichen Grüßen Sam
Mitglied: filippg
14.05.2006 um 21:09 Uhr
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
Bitte warten ..
Mitglied: superboh
15.05.2006 um 02:01 Uhr
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
Bitte warten ..
Mitglied: SamTrex
15.05.2006 um 09:35 Uhr
Hallo nochmal und danke für die Vorschläge! Die Sache mit ARP ist genau das was ich gesucht habe!

Als kleine jedoch lange Info hab ich die Batch mal angehängt.
Ist für 3 User bei uns z.H. und für den Systemstart oder zwischendurch parametrierbar.
Falls jemand noch grundsäzliches an Tipps hat..... Bitte!

Danke nochmal!

Mit freundlichen Grüßen Sam



@ECHO OFF

:: NETZWERKKONFIGURATIONS-BATCH
:: NETZWERK: LNWA
:: v5.4

:: --------------------------------------------------PARAMETERCHECK

IF "%1"=="" (GOTO HELP)
IF /I "%1"=="DIRK" (GOTO CHECK_P2)
IF /I "%1"=="HATHOR" (GOTO CHECK_P2)
IF /I "%1"=="PEACEMAKER" (GOTO CHECK_P2)
GOTO HELPIP1

:CHECK_P2
IF NOT "%2"=="" (IF /I NOT "%2"=="SYSTEMSTART" (GOTO HELPIP2))
SET P1=%1
SET P2=%2

:: --------------------------------------------------START

IF /I "%P2%"=="SYSTEMSTART" title Warte auf Dienste ...
IF /I "%P2%"=="SYSTEMSTART" SLEEP 10
IF /I "%P2%"=="SYSTEMSTART" title Vorhandene Netzwerkverbindungen
NET USE /p:no >NUL
IF /I "%P2%"=="" (IF /I "%P1%"=="DIRK" (FOR %%i IN (B L M N O P Q R S T U) DO NET USE %%i: /del >NUL 2>NUL))
IF /I "%P2%"=="" (IF /I "%P1%"=="HATHOR" (FOR %%i IN (N O P Q) DO NET USE %%i: /del >NUL 2>NUL))
IF /I "%P2%"=="" (IF /I "%P1%"=="PEACEMAKER" (FOR %%i IN (N O P Q) DO NET USE %%i: /del >NUL 2>NUL))

:: --------------------------------------------------INTERNET PR?FEN

title Internet prfen ...
ping www.google.de -n 1 -w 100 >NUL 2>NUL
if not errorlevel 1 (SET INTERNET= Internet: OK) ELSE (SET INTERNET= Internet: N/A)
if not errorlevel 1 goto PROGRAMME
if errorlevel 1 goto LNWA

:PROGRAMME
IF /I "%P1%"=="DIRK" (TASKLIST |FIND /I "TRILLIAN.EXE" >NUL 2>NUL)
IF /I "%P1%"=="DIRK" (IF "%ERRORLEVEL%"=="1" (IF EXIST C:\Programme\Trillian\Trillian.exe (START /B C:\Programme\Trillian\Trillian.exe)))

:: --------------------------------------------------LAUFWERKE VERBINDEN

:LNWA
IF /I "%P1%"=="DIRK" (IF /I "%P2%"=="SYSTEMSTART" (IF EXIST E:\Memo.txt (START MEMO.EXE show 2>NUL)))
title LNWA: Laufwerke werden verbunden


:: MEDIACENTER

SET MEDIACENTER= Laufwerke an MediaCenter:
ping 192.168.0.3 -n 1 -w 1 >NUL 2>NUL
if "%errorlevel%"=="1" (goto MEDIACENTER_ENDE)
IF /I "%P1%"=="DIRK" (NET USE B: \\192.168.0.3\Verwaltung >NUL 2>NUL) & (DIR B: >NUL 2>NUL) & (IF "%ERRORLEVEL%"=="0" (SET MEDIACENTER=%MEDIACENTER% B)
NET USE N: \\192.168.0.3\Eingehend >NUL 2>NUL & (DIR N: >NUL 2>NUL) & (IF "%ERRORLEVEL%"=="0" (SET MEDIACENTER=%MEDIACENTER% N)
NET USE O: \\192.168.0.3\Auditorium >NUL 2>NUL & (DIR O: >NUL 2>NUL) & (IF "%ERRORLEVEL%"=="0" (SET MEDIACENTER=%MEDIACENTER% O)
NET USE P: \\192.168.0.3\Theater >NUL 2>NUL & (DIR P: >NUL 2>NUL) & (IF "%ERRORLEVEL%"=="0" (SET MEDIACENTER=%MEDIACENTER% P)
NET USE Q: \\192.168.0.3\Lektorat >NUL 2>NUL & (DIR Q: >NUL 2>NUL) & (IF "%ERRORLEVEL%"=="0" (SET MEDIACENTER=%MEDIACENTER% Q)
:MEDIACENTER_ENDE
IF /I "%MEDIACENTER%"==" Laufwerke an MediaCenter:" (SET MEDIACENTER=)

:: ONLINESERVER

SET ONLINESERVER= Laufwerke an OnlineServer:
ping 192.168.0.4 -n 1 -w 1 >NUL 2>NUL
if "%errorlevel%"=="1" (goto ONLINESERVER_ENDE)
IF /I "%P1%"=="DIRK" (NET USE L: \\192.168.0.4\Web >NUL 2>NUL) & (DIR L: >NUL 2>NUL) & (IF "%ERRORLEVEL%"=="0" (SET ONLINESERVER=%ONLINESERVER% L)
IF /I "%P1%"=="DIRK" (NET USE M: \\192.168.0.4\Intern >NUL 2>NUL) & (DIR M: >NUL 2>NUL) & (IF "%ERRORLEVEL%"=="0" (SET ONLINESERVER=%ONLINESERVER% M)
SET LASER= HP LaserJet 1100 ist verfgbar
:ONLINESERVER_ENDE
IF /I "%ONLINESERVER%"==" Laufwerke an OnlineServer:" (SET ONLINESERVER=)

:: NOTEBOOK

IF /I NOT "%P1%"=="DIRK" (GOTO NOTEBOOK_ENDE)
SET NOTEBOOK= Laufwerke an NoteBook:
ping 192.168.0.5 -n 1 -w 1 >NUL 2>NUL
if "%errorlevel%"=="1" (goto NOTEBOOK_ENDE)
NET USE R: \\192.168.0.5\C$ >NUL 2>NUL & (DIR R: >NUL 2>NUL) & (IF "%ERRORLEVEL%"=="0" (SET NOTEBOOK=%NOTEBOOK% R)
NET USE S: \\192.168.0.5\D$ >NUL 2>NUL & (DIR S: >NUL 2>NUL) & (IF "%ERRORLEVEL%"=="0" (SET NOTEBOOK=%NOTEBOOK% S)
:NOTEBOOK_ENDE
IF /I "%NOTEBOOK%"==" Laufwerke an NoteBook:" (SET NOTEBOOK=)

:: HP PSC 2610

ping 192.168.0.10 -n 1 -w 1 >NUL 2>NUL
if "%errorlevel%"=="1" (goto HPPSC_ENDE)
IF /I "%P1%"=="DIRK" (NET USE K: \\192.168.0.10\memory_card >NUL 2>NUL & (DIR K: >NUL 2>NUL) & (IF "%ERRORLEVEL%"=="0" (SET HPPSC= Laufwerke an HP PSC 2610: K))
IF /I NOT "%P1%"=="DIRK" (SET HPPSC= HP PSC 2610 ist verfgbar)
:HPPSC_ENDE


:: --------------------------------------------------NETZWERK?BERSICHT

title Netzwerkstatus I %DATE% I %TIME:~0,5% I
cls
echo.
echo Eingerichtet fr: %P1%
IF DEFINED P2 (echo Typ: %P2%)
echo.
echo.
IF DEFINED INTERNET (echo %INTERNET%)
echo.
IF DEFINED MEDIACENTER (echo %MEDIACENTER%)
IF DEFINED ONLINESERVER (echo %ONLINESERVER%)
IF DEFINED NOTEBOOK (echo %NOTEBOOK%)
IF DEFINED SILVERFOX (echo %SILVERFOX%)
echo.
echo.
IF DEFINED HPPSC (echo %HPPSC%)
IF DEFINED LASER (echo %LASER%)
echo.
SLEEP 15
GOTO :EOF


:HELPIP1
cls
echo.
echo Parameter [1] wurde entweder falsch angegeben,
echo oder ist nicht in der Liste unter USERNAME eingetragen!
GOTO HELP

:HELPIP2
cls
echo.
echo Parameter [2] wurde falsch angegeben!
GOTO HELP

:HELP
echo.
echo Syntrax: LNWA [1] [2]
echo.
echo [1] USERNAME
echo [DIRK]
echo [HATHOR]
echo [PEACEMAKER]
echo.
echo [2] [SYSTEMSTART]
echo.
echo Soll die Anwendung im laufenden Betrieb starten,
echo entf?llt [2].
echo.
PAUSE >NUL
GOTO :EOF
Bitte warten ..
Mitglied: Biber
15.05.2006 um 10:37 Uhr
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
Bitte warten ..
Mitglied: SamTrex
15.05.2006 um 17:15 Uhr
Hallo Biber,
Das && steht demnach für wenn Fehlerfrei ausgeführt dann.... Seh ich das richtig?

Besten Dank für den Tipp!
Bitte warten ..
Mitglied: Biber
15.05.2006 um 18:21 Uhr
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
Bitte warten ..
Mitglied: SamTrex
16.05.2006 um 22:04 Uhr
Hallo Biber,
ich habe da leider doch ein kleines Problem mit der Umsetzung von dem &&.

Wenn ich jetzt den Router auf MAC checken will habe ich folgendes geschrieben:

(PING xxx.xxx.xxx.xxx >NUL 2>NUL) && (ARP -a xx-xx-xx-xx-xx-xx |FIND /I "xx-xx-xx-xx-xx-xx") && (SET LAN=EXTERN)

Wenn ich den Befehl so in der Batch laufen lasse wird der Parameter %LAN% nie gesetzt.
Woran liegt das???

Besten Dank
Sam
Bitte warten ..
Mitglied: Biber
17.05.2006 um 08:28 Uhr
Moin SamTrex,

Du musst, wenn dieser Oneliner in einem Batch ist, das Pipe-Zeichen ("|") maskieren.
......&& (ARP -a xx-xx-xx-xx-xx-xx ^|FIND /I "xx-xx-xx-xx-xx-xx") && ...

Gruß
Biber
Bitte warten ..
Mitglied: SamTrex
17.05.2006 um 18:00 Uhr
...das Pipe-Zeichen ("|") maskieren.
......&& (ARP -a xx-xx-xx-xx-xx-xx ^|FIND /I "xx-xx-xx-xx-xx-xx") && ...

Hm, ich hatte da einen kleinen Fehler in meiner Beschreibung, wie mir gerade aufgefallen ist. Es heißt: ...&& (ARP -a |FIND /I "xx-xx-xx-xx-xx-xx") && ....

In diesem Fall dann: ...&& (ARP -a ^|FIND /I "xx-xx-xx-xx-xx-xx") && ....
Wenn ich das so als Batch laufen lasse beschwert sich ARP.

???
Aber danke für Deine Geduld Biber!

Gruß Sam
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (10)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...