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