Tipps

Eine MAC-Adresse unter Windows oder Windows PE auslesen und vereinheitlichen

Heute stand ich vor der Aufgabe, eine MAC-Adresse einzulesen. Das Einlesen der MAC-Adresse gestaltet sich dabei einfach. Unter Windows am einfachsten geht das über Get-Netadapter:

PS > Get-NetAdapter

Name         InterfaceDescription                ifIndex Status   MacAddress         LinkSpeed
----         --------------------                ------- ------   ----------         ---------
Internal     Microsoft Hyper-V Network Adapter        10 Up       00-15-5D-64-98-00  10 Gbps

Unter Windows PE steht das Cmdlet leider nicht zur Verfügung, da es zu den CDXML-Datei basierten Cmdlets gehört. Glücklicherweise kann man sich behelfen, indem man einfach auf Get-WMIObject zurückgreift:

PS > Get-WmiObject -Class win32_networkadapter

Get-WmiObject -Query "select * from win32_networkadapter where NetConnectionStatus = 2"

ServiceName      : netvsc
MACAddress       : 00:15:5D:64:98:00
AdapterType      : Ethernet 802.3
DeviceID         : 1
Name             : Microsoft Hyper-V Network Adapter
NetworkAddresses :
Speed            : 10000000000

Dummerweise liefern die beiden Ausgabe unterschiedliche Formate zurück. Während Get-NetAdapter jedes Byte mit einem Bindestrich trennt, verwendet WMI als Trennzeichen einen Doppelpunkt. Um das Format zu vereinheitlichen, habe ich mit dem Operator -replace einfach Doppelpunkte und Bindestriche entfernt.

$NIC = Get-WmiObject -Class win32_networkadapter
$NIC.MACAddress -replace ':|-',''

Das Schöne an -replace ist, dass er reguläre Ausdrücke verwendet. ':|-' bedeutet : oder -, und der Ersatz ist ein Leerstring: ''. Letztlich werden also alle MAC-Adresse auf das gleiche Format heruntergebrochen, nämlich ohne Trennzeichen.

Wenn Sie nur die Netzwerkkarten abfragen möchten, die Online sind, können Sie mit WMI einfach auf den Netconnectionstatus filtern:

Get-WmiObject -Query "select * from win32_networkadapter where NetConnectionStatus = 2"

Mit Get-Networkadapter können Sie sehr einfach nur die Netzwerkkarten ermitteln, die eine Adresse per DHCP bekommen haben:

Get-NetIPAddress -PrefixOrigin Dhcp | Get-NetAdapter

Im nächsten Tipp Einen String mit Split in gleich Fragmente teilen zeige ich Ihnen, wie Sie eine flache MAC-Adresse (ohne Trennzeichen) wieder in ein beliebiges Format zurücküberführen können, indem Sie den String an bestimmten Stellen (jedem zweiten Zeichen) auftrennen.


 730,    21  Mai  2019 ,   Tipp
Holger Voges

  E-Mail Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!

Holger Voges ist Inhaber der Firma Netz-Weise IT-Training und seit 1999 als Trainer und Consultant tätig. Als Allrounder in den Bereichen Windows Server, Active Directory, SQL Server, Hyper-V und Windows PowerShell, hat er in der Vergangenheit zahlreiche Einsätze als Consultant in namenhaften Firmen absolviert und so neben der Theorie auch umfangreiche praktische Erfahrungen gesammelt.

 

Netz-Weise

Das Haupt-Tätigkeitsfeld von Netz-Weise sind Schulungen für Profis. Bei uns bekommen Sie das Programm für den fortgeschrittenen Praktiker, der die Tiefen des Systems ausloten möchte genauso wie Standard-Schulungen.

So erreichen Sie uns:

Netz-Weise
IT-Training und Beratung
Freundallee 13a
30173 Hannover
 
Tel: (0511) 165 925-0
Fax: (0511) 165 925-99
email: info(at)netz-weise.de
 

Newsletter bestellen

Das Wichtigste kompakt ins E-Mailfach!