anorax
Goto Top

MAC Adresse als Rechnername setzen

Hallo Community!

Im Zuge einer Komplettumstellung sollen auch die Namen all unserer Rechner geändert werden.
Vorgabe für mich ist nun, dass alle PCs nach ihrer MAC Adresse benannt werden sollen.

Nun kann ich natürlich hingehen und überall ipconfig /all ausführen und den Rechnernamen von Hand ändern.

Ich würde das jedoch gerne elegant und Zeitsparend über ein Batchscript erledigen, welches per

ipconfig /all | findstr "Physikalische Adresse"  

die MAC ausliest.

So liegt die Adresse ja dann vor:

   Physikalische Adresse . . . . . . : 00-0C-29-76-D1-22

Nun müsste das Script die letzten 11 Stellen nehmen und dort die Striche entfernen damit ich dann den Rechnernamen per compname.exe setzen kann.

Falls einer von euch da eine Lösung kennt wäre ich für Hilfe sehr dankbar!

Gruß

Dennis

Content-ID: 103061

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

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

TheUntouchable
TheUntouchable 01.12.2008 um 16:53:00 Uhr
Goto Top
Also so wies aussieht brauchst du mit der Compname.exe garnich viel tun damit du dein Ziel erreichst:

Hilfe der Compname.exe:
COMPNAME [/c name | /d [template] | /s]

/c[hange] Changes the computer name to the one specified.
/d[isplay] Displays the computer name.
/s[mbios] Displays the serial number information from SMBIOS.
name New computer name. Only valid with the /c option.
This may contain macros; see below.
template When used in conjuction with /d, displays the evaluated name.
Templates will normally contain macros; see below.

The following macros are valid in the name or template.
(hier mal nur das wichtigste)
?m = First MAC address.

Heist du brauchst eigentlich nur
compname /c ?m
eingeben wenn ich das richtig versteh ;)


Folgendes wird daher nicht gebraucht und kann überlesen werden:


Das sollte dir die Mac Adresse ausgeben:

@echo off

for /f "Tokens=9* Delims=: " %%i in ('ipconfig /all ^| findstr "Physikalische"') do ECHO %%i  

pause

Wenn der Rechner jedoch mehrere MACs (Wlan, Lan, Bluetooth,..) besitzt dann werden alle nacheinander ausgegeben.. Das könnte beim Umbenennen doof werden..

Wies Umbenennen genau funktioniert muss ich mir noch angucken ;)

Sind die Computer denn in einer Domain? Weil dann wirds echt kniffelig..
Anorax
Anorax 01.12.2008 um 17:15:02 Uhr
Goto Top
Danke dir, das hilft mir schon weiter.

Das Problem ist halt, dass nur die letzten 8 Ziffern der MAC ohne Bindestriche den Rechnernamen bilden sollen face-wink

Aber vielleicht kann ich ja meinen Vorgesetzten überreden, das wir die komplette MAC als Name nehmen *g*
TheUntouchable
TheUntouchable 01.12.2008 um 18:59:02 Uhr
Goto Top
Dann probiers mal hiermit ;)

@echo off

for /f "Tokens=3,4,5,6 Delims=-" %%i in ('ipconfig /all ^| findstr "Physikalische"') do set MAC=%%i%%j%%k%%l  
COMPNAME /c %MAC%

pause
dog
dog 01.12.2008 um 20:26:45 Uhr
Goto Top
Nur die letzten 3 Bytes einer MAC-ID zu verwenden wäre witzlos, da hier Fehler vorprogrammiert sind.

MAC-IDs haben die Form Hersteller:Hersteller:Hersteller:Gerät:Gerät:Gerät.

Die letzten 3 Bytes sind also nicht eindeutig, da die jeder Hersteller vergeben kann - dazu kommt, dass auch einzelne Hersteller oft mehrere IEEE-Vendor-IDs (erste 3 Bytes) haben.

Grüße

Max
Anorax
Anorax 01.12.2008 um 20:41:43 Uhr
Goto Top
Super! Klappt, vielen Dank dir face-smile
TheUntouchable
TheUntouchable 01.12.2008 um 20:43:45 Uhr
Goto Top
Kein Problem ;) Aber ich muss Max unten recht geben, es ist zwar sehr unwahrscheinlich, aber wenn du wirklich Pech hast kanns vorkommen das 2 PCs den selben Namen bekommen und das gibt im Netzwerk Ärger! Also aufpassen ;)
sysad
sysad 01.12.2008 um 21:16:11 Uhr
Goto Top
Zitat von @Anorax:
Danke dir, das hilft mir schon weiter.

Das Problem ist halt, dass nur die letzten 8 Ziffern der MAC ohne
Bindestriche den Rechnernamen bilden sollen face-wink


Kannste knicken, Du musst die ganze MAC nehmen.

Und auch sicher sein, dass Du den Namen von der ersten NIC willst.
Anorax
Anorax 02.12.2008 um 10:14:48 Uhr
Goto Top
Ich weiss dass das zu gleichen Namen führen könnte. Habe den Auftrag halt so erhalten und soll ihn auch so ausführen, kann ich nichts dran ändern face-smile

Danke an alle, die mir geholfen haben face-smile
Kollisionskurs
Kollisionskurs 30.07.2009 um 15:11:22 Uhr
Goto Top
Hallo,

genau nach dieser Lösung habe ich gesucht - via Batch möchte ich die MAC Adresse auslesen und die letzten 6 Zeichen mit an den PC-Namen "hängen".

Diese Boards sind immer vom selben Hersteller - somit sollte ich eigentlich immer eindeutig sein.

Nur mein Problem:

Die Batchdatei "durchläuft" alle Netzwerkadapter bzw. neben der LAN-Schnittstelle:

"Ethernetadapter LAN-Verbindung"

gibt es noch diverse Tunneladapter. Somit wird immer die letzte physikalische Adresse des letzten Adapters berücksichtigt.

Wie kriege ich das hin das er nur den "Ethernetadapter LAN-Verbindung" (erster Adapter) berücksichtigt?

Danke & Grüße