我可以像这样获得网卡计数器实例名称:
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 "
正如上面编辑中已经解释的那样,我举例说明了这种文本捏造不起作用.