Стоит задача: средствами Powershell узнать аппаратный адрес своей сетевой карты. Он же физический-, он же MAC-адрес.
В обычной командной строке Windows это делается двумя методами:
- "getmac".
- "ipconfig /all" показывает настройки всех сетевых адаптеров твоей машины. Искать для каждого адаптера раздел "Физический адрес"
В Powershell нам поможет командлет "Get-NetAdapter" который показывает имя каждого интерфейса, его описание, аппаратный адрес и скорость на интерфейсе. С помощью такой вот комбинации "(Get-NetAdapter).MACAddress" показываются только аппаратные адреса без всего прочего.
Мне для скрипта надо было узнать MAC моей работающей сетевой карты и исключить разные не работающие адаптеры. Описание командлета Get-NetIPConfiguration сказало что он возвращает инфу только работающих не-виртуальных интерфейсов данного компа. Дословно "this cmdlet gets IP configuration properties for all non-virtual connected interfaces on a computer".
Я реализовал задачу двумя командлетами.
$InterfaceAlias=(Get-NetIPConfiguration).InterfaceAlias
$HWAddr=(Get-NetAdapter | Where-Object{$_.ifAlias -eq $InterfaceAlias}).MACAddress
$HWAddr=(Get-NetAdapter | Where-Object{$_.ifAlias -eq $InterfaceAlias}).MACAddress
На выходе в переменной $HWAddr находится физический адрес. В первой строке переменная $InterfaceAlias получает название работающего интерфейса, а во второй строке по имени интерфейса ищется его аппаратный адрес.
Можно попробовать проще.
$HWAddr=(Get-NetAdapter).MACAddress | Select-Object -First 1
Но я не уверен что этот вариант будет всегда работать корректно.
Так же найден способ узнать MAC адрес другого компьютера.
Так же найден способ узнать MAC адрес другого компьютера.
Комментариев нет:
Отправить комментарий