在powershell中获取匹配接口的ip地址

Get ip address of matching interface in powershell

我对powershell不熟悉。我想将 ip 地址存储在一个变量中,该变量的 -InterfaceAlias 与以太网之后的 'Ethernet(\s+)' 任何 space 匹配。下面的命令给出了 IPV4 的所有接口列表。

Get-NetIPAddress -AddressFamily IPv4

不确定如何过滤接口名称匹配别名后的 space 并将其存储到变量中。

完整:

$IpAddress = Get-NetIPAddress -AddressFamily IPv4 |
                 Where-Object {$_.InterfaceAlias -match 'Ethernet\s+' } |
                 Select-Object -ExpandProperty IPAddress

另一种方法是在 -InterfaceAlias 参数中使用 space 和通配符:

$IP = Get-NetIPAddress -AddressFamily IPv4 -InterfaceAlias "Ethernet *"

奇怪的是,Microsoft 文档说 -InterfaceAlias 参数不接受通配符,但它仍然有效。参见 Get-NetIPAddress

从 Windows 10 / Server 2016 开始,您可以像这样使用 Get-NetIPConfiguration

(Get-NetIPConfiguration -InterfaceAlias "Ethernet *").IPv4Address.IPAddress

更多详情:Get-NetIPConfiguration