Powershell 确定活动的以太网适配器及其 MAC

Powershell determine active ethernet adapter and his MAC

在 Linux 中,我可以使用 "ip route" 命令确定活动的 Eth 适配器:

vasyl@retail-z3-1:~$ ip route get 8.8.8.8
8.8.8.8 via 10.186.0.1 dev ens4  src 1.1.1.1

有什么方法可以确定哪个适配器名称(和他的 MAC)用于 PS 中的互联网连接?也许是 get-netadapter 或类似的东西。

PS 现在,我正在使用此代码从已知适配器中提取 MAC 地址:

$CurrMac = get-netadapter | Where {$_.name -Match "Ethernet 2"}
$CurrMacaddr = $CurrMac.MacAddress.Replace("-", "")

并且需要自动判断网卡。

UPD1 假设我的主机有 2 个或更多 Eth 适配器。一个用于互联网,休息 - 用于内部网络或不活动。

类似?

$adapters = Get-NetAdapter

foreach ($adapter in  $adapters){
    if($adapter.Status -eq "Up" -and $adapter.Name.Contains("Ethernet")){
    Write-Host $adapter.MacAddress 
    }
}

但您仍然可以获得更多 MAC 个地址..

或使用Get-NetRoute -DestinationPrefix '0.0.0.0/0' | Get-NetAdapter 那么

$activeMAC= Get-NetRoute -DestinationPrefix '0.0.0.0/0' | Get-NetAdapter
Write-Host $activeMAC.MacAddress

那应该 return 只有 1 MAC