要使用Powershell将我的特定命名适配器的IP地址v4放入变量中吗

要使用Powershell将我的特定命名适配器的IP地址v4放入变量中吗,powershell,ip,adapter,named,Powershell,Ip,Adapter,Named,我的电脑上有几个网络适配器 我只想获取适配器的IP地址v4(没有头或附加),并将其存储到一个变量中以供进一步使用 我可以返回带有标题的IP地址,但不是我想要的 请帮忙-谢谢 以下是我尝试过的: $ipa = Get-NetIPAddress | Where-Object { $_.IfIndex -eq 19 -and $_.InterfaceAlias -eq "LAN2" -and $_.AddressFamily -eq "IPv4" } | Select-Object {

我的电脑上有几个网络适配器

我只想获取适配器的IP地址v4(没有头或附加),并将其存储到一个变量中以供进一步使用

我可以返回带有标题的IP地址,但不是我想要的

请帮忙-谢谢

以下是我尝试过的:

$ipa = Get-NetIPAddress |
    Where-Object { $_.IfIndex -eq 19 -and $_.InterfaceAlias -eq "LAN2" -and $_.AddressFamily -eq "IPv4" } |
    Select-Object { $_.IPAddress }
编辑:

$ipa = Get-NetIPAddress |  where {$_.InterfaceAlias -eq "LAN2" -and    
$_.AddressFamily -eq "IPv4"} | select -expandproperty ipaddress
上面的代码返回了我的两个有线适配器的地址,但它至少只返回了Ip地址,其他什么都没有返回(谢谢Anthony)

只有一个叫做“LAN2”-我只需要一个-所以仍然卡住了

更新:
Austin Frenchs的第二个解决方案非常有效-今天稍后将测试Owls-感谢迄今为止的所有人-非常有用的社区

您可以通过首先使用
get wmiobject
获取机器上所有网络适配器的列表,选择您想要的名称,然后将其输送到
get netipaddress
,然后选择
IPAddress
属性,如下所示

(Get-WmiObject win32_networkadapter | Where-Object {$_.name -eq "YOUR_NAME"} | Get-NetIPAddress).IPAddress

由于无法获得netipaddress,这里有一个非常脏且很长的单衬垫。将网络名称更改为“局域网连接”

((([System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces() | ? {$_.Name -eq  "Local Area Connection"}).GetIPProperties() | Select-Object -ExpandProperty 'UniCastAddresses' | ? {$_.IPv4Mask -ne
"0.0.0.0"}) | Select Address).Address.IPAddressToString
对于Get-netIpAddress,我怀疑这也会起作用:

$ipa = (Get-NetIPAddress |
    Where-Object { $_.IfIndex -eq 19 -and $_.InterfaceAlias -eq "LAN2" -and $_.AddressFamily -eq "IPv4" } | `
    Select-Object { $_.IPAddress }).IPAddress
简单一行

(Get-NetIPConfiguration).ipv4address | where {$_.InterfaceAlias -eq "Lan2"} | foreach { write-host $_.ipaddress}
从启用的网络获取

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE  | select Ipaddress
仅来自特定适配器和ipv4

Get-WMIObject win32_NetworkAdapterConfiguration | 
  Where-Object { $_.IPEnabled -eq $true } | 
  Foreach-Object { $_.IPAddress } | 
  Foreach-Object { [IPAddress]$_ } | 
  Where-Object { $_.AddressFamily -eq 'LAN2'  } | 
  Foreach-Object { $_.IPAddressToString }

您好,请使用编辑按钮将您的代码添加到您的问题中,以便我们可以帮助您:)。请看@sodawillow所说的。请提供,并指出您的PowerShell和操作系统版本,因为PowerShell的networking cmdlet在较新的版本中发生了很大变化。请尝试将最后一部分更改为
select-expandproperty ipaddress
抱歉,我把它弄得一团糟-我无法理解添加代码的说明,它们非常混乱-我在已指示-对不起,谢谢Anthony,您的更改只提供了IP地址-但仍返回了2个适配器IP地址Hi Austin您的第一个答案因此错误而崩溃。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。不能对空值表达式调用方法。在\\\POWERSHELL-SCRIPTS\将ip放入变量中。ps1:34字符:1+$ipa=(([System.Net.NetworkInformation.NetworkInterface]::GetAllNet…+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,RuntimeException+FullyQualifiedErrorId:InvokeMethodUnull但您的第二个解决方案非常有效!!感谢好消息,别忘了接受答案(复选标记)当你找到适合你的东西时。嗨,迈克,谢谢-但是你的解决方案返回一个空白。我刚刚在我的一个系统上再次测试,得到了正确的结果。当你刚刚运行
get wmiobject win32\u networkadapter
时,你看到你正在寻找的适配器了吗?啊,我想你可能正在尝试适配器(悬停在“说明”上方)字段-当我把它放在我的位置时,它可以工作-不使用适配器名称-你或多或少得到的只是不需要1pv6-干杯:)稍微混淆了microsoft在powershell中称它为“名称”-看起来它们的意思是“描述”,因为它适用于methanks Owl-你的第一个工作非常好,返回的正是我想要的第二个返回所有启用的适配器(不需要IPv6地址)您的第三个解决方案不返回任何内容(您将适配器名称与(地址系列)混淆了)-但感谢第一个解决方案我选择了Owls first解决方案,因为它效率最高,并且使用的代码不多:)