yakazaa
Goto Top

MAC Adresse und IP in TXT File schreiben

Hallo zusammen,

möchte gerne ein bereits bestehendes Skript erweitern:

Das Skript bestimmt für einen Rechner u.a. einen Computername und eine IP anhand einer Vordefinierten HOSTS Datei.
Klappt soweit schonmal ganz gut...

Jetzt brauchen wir aber zu Wake-On-LAN Zwecken auch noch die MAC Adresse in unserer Verwaltung und da ja das o.g. Skript sowieso durchläuft stell ich mir das folgendermaßen vor:

Das Skript ermittelt die IP Adresse des Rechners und die MAC Adresse des Rechners und hängt diese dann an eine, für alle zugängliche TXT-Datei an.

So haben wir letztendlich eine Übersicht über alle Rechner incl. IPs...

Hat jemand eine Idee wie man das machen könnte ?!

Danke im Vorraus...

Content-Key: 79012

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

Printed on: April 25, 2024 at 05:04 o'clock

Member: bastla
bastla Jan 24, 2008 at 09:12:30 (UTC)
Goto Top
Hallo yakazaa!

Sollte so gehen:
for /f "skip=3 tokens=1,2" %%i in ('arp -a') do echo %%i %%j>>\\Server\Share\IPMACList.txt  

Grüße
bastla
Member: yakazaa
yakazaa Jan 24, 2008 at 10:25:39 (UTC)
Goto Top
Hallo,

Danke erstmal, aber ich glaube das ist noch nicht so ganz funktionsfähig:

Die Rechner werden zum Image Deployment von einem DHCP Server gebootet.

Dann sucht sich unser Skript, wie folgt die IP aus:

SET COMPUTERNAME=%Eingabe2%-%Eingabe4%

copy C:\Windows\system32\drivers\etc\hosts c:\hosts.txt
FOR /F "" %%I in ('findstr /i "%COMPUTERNAME%$" C:\hosts.txt') DO Set IP=%%I  

del C:\hosts.txt

Eingabe 2 und 4 werden zuvor vom benutzer abgefragt.

Ich müsste diese IP allerdings VOR dem Wechsel in die besagte Datei schreiben, da nach dem Wechsel der Server ja nicht mehr verfügbar ist (Ändern den kompletten Bereich).

Wie kann ich das abändern ?!

Danke nochmal, Dominik
Member: bastla
bastla Jan 24, 2008 at 10:59:57 (UTC)
Goto Top
Hallo yakazaa!

Wenn Du die zukünftige IP ja nun schon kennst, was hält Dich davon ab, diese zusammen mit der ausgelesenen MAC-Adressse in die Sammeldatei zu schreiben, indem Du die obige Zeile einfach so anpasst:
for /f "skip=3 tokens=1,2" %%i in ('arp -a') do echo %IP% %%j>>\\Server\Share\IPMACList.txt  
Natürlich lässt sich das noch verbessern, da Du ja die derzeitige (dynamische) IP demnach gar nicht benötigst:
for /f "skip=3 tokens=2" %%i in ('arp -a') do set MAC=%%i  
echo %IP% %MAC%>>\\Server\Share\IPMACList.txt
Etwas OT: Wozu kopierst Du die "hosts"-Datei nach C:\, wenn Du sie dort ohnehin gleich wieder löschst? IMHO würde auch genügen:
FOR /F %%I in ('findstr /i "%COMPUTERNAME%$" C:\Windows\system32\drivers\etc\hosts') DO Set IP=%%I  

Grüße
bastla
Member: yakazaa
yakazaa Jan 24, 2008 at 12:09:29 (UTC)
Goto Top
Also,

hab das Gefühl dich verstanden zu haben und deshalb sieht mein Code jetzt so aus:

SET COMPUTERNAME=SVS-8

copy C:\Windows\system32\drivers\etc\hosts c:\hosts.txt
for /f "skip=3 tokens=1,2" %%i in ('arp -a') do echo %IP% %%j>>\\Srv\JAG_MAC\IPMACList.txt  
FOR /F "" %%I in ('findstr /i "%COMPUTERNAME%$" C:\hosts.txt') DO Set IP=%%I  

del C:\hosts.txt

Wenn ich das so ausführe, schreibt er zwar in meine Datei die MAC Adresse, aber leider nicht die IP.
Ausserdem ändert er die IP auch nicht mehr...

Was das "verbessern" angeht:
sicherlich KANN man an dem Gesamtskript eine ganze Menge verbessern, aber:
Ich bin in diesen Sachen leider kein Experte und so kann ich es einigermaßen halbwegs nachvollziehen face-smile

Achso, gibt es eine Möglichkeit eine Art Abfrage einzubauen,
die überprüft ob MAC Adresse bzw. IP schon vorhanden sind ?!
Member: bastla
bastla Jan 24, 2008 at 13:33:30 (UTC)
Goto Top
Hallo yakazaa!

Wenn ich das so ausführe, schreibt er zwar in meine Datei die MAC Adresse, aber leider nicht die IP.
Das liegt daran, dass Dein Rechner dabei versagt, in die Zukunft (und wenn sie nur eine Zeile weiter liegt) zu sehen ...
SET COMPUTERNAME=SVS-8

copy C:\Windows\system32\drivers\etc\hosts c:\hosts.txt
FOR /F "" %%I in ('findstr /i "%COMPUTERNAME%$" C:\hosts.txt') DO Set IP=%%I  
for /f "skip=3 tokens=1,2" %%i in ('arp -a') do echo %IP% %%j>>\\Srv\JAG_MAC\IPMACList.txt  

del C:\hosts.txt

Achso, gibt es eine Möglichkeit eine Art Abfrage einzubauen, die überprüft ob MAC Adresse bzw. IP schon vorhanden sind ?!
Gibt es. Soll sich das Ergebnis der Abfrage auch irgendwie auswirken?

Grüße
bastla
Member: Biber
Biber Jan 24, 2008 at 13:43:24 (UTC)
Goto Top
BTW,

auch wenn ich keinen richtigen Nährwert darin erkennen kann, diese Host.txt zu erzeugen, so halte ich es doch in einer "normalen" Domänen-Umgebung für ausgeschlossen, dass ausgerechnet das C:-Root-Verzeichnis für temporäre Spielereien benutzt wird.
Und das von Admin-Seite vorzuturnen ist normalerweise ein Grund für die Entstehung von running gags auf Weihnachts- und Betriebsfeiern. Und so etwas bleibt die ganze Berufslaufbahn hängen.

Bitte wenigstens auf "%temp%\hosts.txt" ändern. Dann fällt es nicht so auf.

Grüße
Biber
Member: yakazaa
yakazaa Jan 24, 2008 at 15:08:21 (UTC)
Goto Top
Ok, auch eine Ansicht.....


Und das von Admin-Seite vorzuturnen ist normalerweise ein Grund für >die Entstehung von running gags auf Weihnachts- und Betriebsfeiern. >Und so etwas bleibt die ganze Berufslaufbahn hängen.


Schon mal passiert ?! face-wink

Mal im Ernst:
Die Benutzer, die diesen PC benutzen sehen von der Windowsoberfläche nix.
Da wird eine firmeneigene Applikation im Vollbildmodus gestartet und gut.

Wo ich als ITler (und nicht AEler) meine Files zwischenlagen kann denen also schonmal egal sein.

Das Erzeugen der Host Dateien kann man wohl übergehen, aber so wie es jetzt ist ist es für mich durch Hinfufügen einer Pause, plausibler zu Erkennen, was gerade ausgeführt wird.

Also bitte nicht schimpfen face-wink
Member: Hexenmeister
Hexenmeister Feb 18, 2008 at 10:35:02 (UTC)
Goto Top
hallo
probiers mal mit ipconfig /all >info.txt

lg
hexenmeister