在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
我对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