Get-MacAddress #
ÜBERSICHT #
Ermittelt die MAC-Adresse(n) eines PCs, lokal oder remote.
SYNTAX #
Get-MacAddress [[-ComputerName] <string>] [[-Credential]
<System.Management.Automation.PSCredential>] [-CheckWakeOnLan] [<CommonParameters>]
BESCHREIBUNG #
Ohne -ComputerName werden alle physischen Netzwerkkarten des lokalen Rechners aufgelistet (Name, MAC, Status).
Mit -ComputerName wird ein entfernter Rechner abgefragt. Zwei Wege:
ARP (Standard, ohne Anmeldedaten): Der Rechner wird angepingt, damit sein IP-zu-MAC-Eintrag im Nachbar-Cache landet, danach wird die MAC ausgelesen. Funktioniert nur im selben Subnetz und nur solange der Zielrechner läuft. Liefert genau die MAC der abgefragten Adresse.
CIM/WMI (mit -Credential): Liest alle Netzwerkkarten inkl. Namen über eine authentifizierte CIM-Session. Braucht Anmeldedaten und ein erreichbares Ziel, liefert dafür die vollständige Adapterliste.
Mit -CheckWakeOnLan kommt die Spalte WakeArmed dazu (ist die Karte für Wake-on-LAN scharfgeschaltet?). Lokal über ‘powercfg -devicequery wake_armed’ (Abgleich über den Adapternamen), remote über die WMI-Klasse MSPower_DeviceWakeEnable (nur mit -Credential, treiberabhängig unvollständig). Beim reinen ARP-Weg ist das nicht feststellbar, dort bleibt WakeArmed leer.
WakeArmed = $true bedeutet: Windows/Treiber sind so eingestellt, dass die Karte den Rechner aufwecken darf. Es sagt NICHTS über die BIOS/UEFI- Einstellung oder den Windows-Schnellstart aus; ein Wecken aus dem echten Ausschalten (S5) kann trotz $true scheitern. $false bzw. leer heisst daher nur “nicht scharf oder nicht feststellbar”, nicht zwingend “unmöglich”.
Wichtig: Ein ausgeschalteter PC antwortet nicht auf ARP. Die MAC also immer auslesen, solange der Rechner läuft, und für späteres Wake-on-LAN notieren.
PARAMETER #
-ComputerName #
Type: string
Hostname oder IP-Adresse des Zielrechners. Ohne Angabe wird der lokale Rechner abgefragt.
-Credential #
Type: System.Management.Automation.PSCredential
Anmeldedaten für die CIM/WMI-Abfrage. Ist dies gesetzt, wird die vollständige Adapterliste per CIM geholt statt der ARP-Einzeladresse.
-CheckWakeOnLan #
Type: switch
Ergänzt die Ausgabe um die Spalte WakeArmed (Wake-on-LAN scharfgeschaltet). Für ein verlässliches lokales Ergebnis sollte die Sitzung mit erhöhten Rechten laufen.
AUSGABEN #
System.Management.Automation.PSCustomObject[]
BEISPIELE #
# Alle physischen Karten des lokalen PCs
Get-MacAddress
# MAC eines Rechners im gleichen Subnetz per ARP
Get-MacAddress -ComputerName 192.168.1.50
# Lokale Karten inklusive Wake-on-LAN-Status
Get-MacAddress -CheckWakeOnLan
# Vollständige Adapterliste eines Remote-Rechners per CIM
Get-MacAddress -ComputerName PC-BUERO -Credential (Get-Credential)
HINWEISE #
Nutzt CIM (Get-CimInstance/New-CimSession), Get-NetNeighbor und powercfg, daher Windows-only. Die CIM-Cmdlets laufen unter PowerShell 5.1 und 7+. Gegenstück: Send-WakeOnLan.