首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWMI Win32_NetworkAdapterConfiguration -显示描述和IP地址,但只有IPV4 (不包括IPV6)

GWMI Win32_NetworkAdapterConfiguration -显示描述和IP地址,但只有IPV4 (不包括IPV6)
EN

Stack Overflow用户
提问于 2022-11-20 17:02:41
回答 1查看 30关注 0票数 0

相对较新的Powershell。

我试图从下面的代码输出描述和IPAddress值,而不输出它的IPV6地址。

我想要这个描述和IPAddress值,我已经通过选择-Expand IPAddress和一个Like命令成功地将它输出到IPV4,但是当我试图通过Select添加描述时,它只是破坏了整个过程。

下面是我已经接近,显示我的描述+ IP地址,但我想隐藏IPV6保持整洁。

代码语言:javascript
复制
gwmi Win32_NetworkAdapterConfiguration -computername $endpointip |
             Where { $_.IPAddress -notlike '*::*'  } | Where {$_.Description -like '*GbE*' -or $_.Description -like '*Ethernet*' -or $_.Description -like '*Wi-Fi*'-or $_.Description -like '*Wireless*' -or $_.Description -like '*Cisco*'}| # filter the objects where an address actually exists
                             Select Description, IPAddress| Out-String # retrieve only the property *value*

也试过了

代码语言:javascript
复制
$_.IPAddress -like '*.*.*'

不过,这只是像下面这样的输出,我不想要IPV6地址

代码语言:javascript
复制
`Description                                                                      IPAddress                                                          
-----------                                                                      ---------                                                          
Intel(R) Wireless-AC 9560 160MHz                                                 {192.168.0.16, fe80::50d0:fda6:44ee:237d}                          
Realtek PCIe GbE Family Controller                                                                                                                  
Microsoft Wi-Fi Direct Virtual Adapter                                                                                                              
Microsoft Wi-Fi Direct Virtual Adapter                                                                                                              
Cisco AnyConnect Secure Mobility Client Virtual Miniport Adapter for Windows x64 {x.x.x.x, xxxx::xxxx:xxxxx:xxxx, xxxx::xxxx:xxxx:xxxx:xxxx}
Realtek USB GbE Family Controller `

或者像这样

代码语言:javascript
复制
Description                                                                      IPAddress                                                          
-----------                                                                      ---------                                                          
Intel(R) Wireless-AC 9560 160MHz                                                 {192.168.0.16, fe80::50d0:fda6:44ee:237d}                          
Cisco AnyConnect Secure Mobility Client Virtual Miniport Adapter for Windows x64 {xx.xx.xx.xx, xxxx::xxxx:xxxxx:xxxx, xxxx::xxxx:xxxx:xxxx:xxxx}

任何帮助都将不胜感激,谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-20 17:35:05

在PowerShell“如何思考”方面,您想要过滤的是按预期的那样工作。*.*.*将获得在IPAddress匹配*.*.*中具有值的对象,但它不排除其他值。立即解决的方法是使用计算性质提取IP地址:

代码语言:javascript
复制
gwmi Win32_NetworkAdapterConfiguration -computername $endpointip | 
    Where {$_.Description -like '*GbE*' -or $_.Description -like '*Ethernet*' -or $_.Description -like '*Wi-Fi*'-or $_.Description -like '*Wireless*' -or $_.Description -like '*Cisco*'} | 
    Select Description, @{
        Name = 'IPAddress'
        Expression = { $_.IPAddress | Select -First 1}
    }

在这里,您告诉它只选择IPAddress中的第一个对象值,它几乎总是IPv4地址。

  • 您还可以对其使用筛选器,以确保IP地址与$_.IPAddress | ? { $_ -like '*.*' }匹配。

在不知道PS版本的情况下,Get-CimInstance取代了Get-WMIObject,因为PS内核中也不支持PS 3.0+。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74510185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档