当前位置:  开发笔记 > 运维 > 正文

Powershell:特定网卡的计数器实例名称

如何解决《Powershell:特定网卡的计数器实例名称》经验,为你挑选了0个好方法。

我可以像这样获得网卡计数器实例名称:

 Get-WmiObject Win32_PerfRawData_Tcpip_NetworkInterface

对于Name,输出类似的内容:

Intel[R] Ethernet Controller X540-AT2
Intel[R] Ethernet Controller X540-AT2 _2
Intel[R] Ethernet Controller X540-AT2 _3
Intel[R] Ethernet Controller X540-AT2 _4

我可以得到(启用)网卡这样:

Get-WmiObject win32_networkadapter -filter "netconnectionstatus=2"

为姓名输出这样的东西:

Intel(R) Ethernet Controller X540-AT2
Intel(R) Ethernet Controller X540-AT2 #4

但是,任何一个调用都没有返回与另一个直接匹配的属性.

最接近的是win32_networkadapter的名称,它类似于计数器名称,但已被更改为删除非法字符并更改其他字符(*1),并且正在进行某种实例化(*2).

(*1)=只是在测试中,它用圆括号("()")替换方括号("[]"),并转换下划线的哈希值.

(*2)=在具有四个网络适配器的机器中,

我的问题是:如何直接将一个映射到另一个,而不依赖于我的猜测文本替换?

编辑:
如果您尝试在VM上测试此功能,则需要添加至少两个网卡.

以下是在Hyper-V上运行的Windows Server 2012 R2 VM的相关输出:

 Get-WmiObject Win32_PerfRawData_Tcpip_NetworkInterface | select Name

 Name
 ----
 Microsoft Hyper-V Network Adapter
 Microsoft Hyper-V Network Adapter _2
 Microsoft Hyper-V Network Adapter _3


 Get-WmiObject win32_networkadapter -filter "netconnectionstatus=2" | select Name

 Name
 ----
 Microsoft Hyper-V Network Adapter #2
 Microsoft Hyper-V Network Adapter
 Microsoft Hyper-V Network Adapter #3

再次编辑:

字符串替换是正确的,只是在使用NIC组合的服务器上不起作用.

以下是使用网卡绑定的服务器示例:

 Get-WmiObject win32_networkadapter -filter "netconnectionstatus=2" | select name

 Name
 ----
 Intel(R) 82575EB Gigabit Network Connection
 Intel(R) 82575EB Gigabit Network Connection
 Intel(R) 82576 Gigabit Dual Port Network Connection
 Intel(R) 82576 Gigabit Dual Port Network Connection
 TEAM : PublicTeam
 TEAM : PrivateTeam


 Get-WmiObject Win32_PerfRawData_Tcpip_NetworkInterface | select Name


 Name
 ----
 TEAM : PrivateTeam - Intel[R] 82575EB Gigabit Network Connection
 TEAM : PublicTeam - Intel[R] 82575EB Gigabit Network Connection _2
 TEAM : PrivateTeam - Intel[R] 82576 Gigabit Dual Port Network Connection
 TEAM : PublicTeam - Intel[R] 82576 Gigabit Dual Port Network Connection _2

*编辑第三/第四名:*

另一台机器甚至没有使用上面有些可猜测的命名方案.

这是在Windows Server 2012 R2上:

 Get-WmiObject Win32_PerfRawData_Tcpip_NetworkInterface | select Name

 Name
 ----
 Intel[R] 82576 Gigabit Dual Port Network Connection
 Intel[R] 82576 Gigabit Dual Port Network Connection _2
 Intel[R] 82576 Gigabit Dual Port Network Connection _3
 Intel[R] 82576 Gigabit Dual Port Network Connection _4

 Get-WmiObject win32_networkadapter -filter "netconnectionstatus=2" | select Name

 Name
 ----
 Intel(R) 82576 Gigabit Dual Port Network Connection
 Intel(R) 82576 Gigabit Dual Port Network Connection
 Microsoft Network Adapter Multiplexor Driver
 Microsoft Network Adapter Multiplexor Driver #2

请注意,在这种情况下,它是实际具有IP的Microsoft网络适配器.

虽然在这种情况下,适配器 perf 计数器上的匹配性能计数器实际上工作(在其他情况下接口似乎更可靠)

编辑5:

人们不断发表评论,如"它与其他线程类似:获取链接速度 - Win32_PerfRawData_Tcpip_NetworkInterface "

正如上面编辑中已经解释的那样,我举例说明了这种文本捏造不起作用.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有