Windows 2003 Shell Scripting

Shell Scripting im Netzwerk

GetMAC für NT4 und W2K

Ab Windows Server 2003 steht das Kommando getmac zur Verfügung, mit dessen Hilfe die Mac-Adresse des lokalen Computers ausgegeben werden kann. Diese Funktionalität soll auch unter Windows 2000 und XP bereitstehen.

Die Mac-Adresse ist durch ipconfig /all bereits seit Windows 2000 verfügbar. Aus der entsprechenden Zeile in der Ausgabe muss nun der Wert extrahiert werden. Danach ist die Ausgabe so zu filtern, dass auch nur Zeilen mit einer Ethernetadresse ausgegeben werden. Sind mehrere Adapter im System verfügbar, soll die Mac-Adresse für alle Adapter ausgegeben werden. Geben Sie das unten stehende Kommando ein. Sie erhalten dann eine Ausgabe mit allen definierten Mac-Adressen.

ipconfig /all | find /i "phys"

Das Problem an dieser Ausgabe liegt aber darin, dass Sie nicht feststellen können, welche Mac-Adresse zu welchem Netzwerkadapter gehört. Ist nur ein Adapter vorhanden, ist dies kein Problem, und Sie können dieses Kommando verwenden. Wir möchten Ihnen aber nachfolgend gerne eine etwas komfortablere Version vorstellen, die den Namen getmac.bat trägt.

Code

@echo off
echo Liste der Mac-Adressen fuer %computername%
echo.

set action=
for /F "usebackq tokens=*" %%f in (`ipconfig /all`) do
call :procline "%%f"
goto :eof

:procline
if "%action%" == "getDesc" goto getDesc
if "%action%" == "getMac" goto getMac
echo %1 | find /i "Verbindungsspez" > nul
if errorlevel 1 goto :eof
set action=getDesc
goto :eof

:getDesc
for /F "delims=: tokens=2" %%f in ("%~1") do set
output=%%f
set output=%output:~1%
set action=getMac
goto :eof

:getMac
for /F "delims=: tokens=2" %%f in ("%~1") do set
output=%%f = %output%
echo %output%
set action=
goto :eof