我的基本问题是我想从 IP 地址列表中找到总网络 IO。许多服务器具有不同的 NIC,有些具有组合 NIC。
由于似乎我需要为网络接口实例提供确切的名称,因此我创建了一个实例名称数组:
Dim category As New PerformanceCounterCategory("Network Interface")
Dim instancenames As String() = category.GetInstanceNames()
然后,我逐步查看名称并添加到 performancecounter 对象列表中:
For Each instancename In instancenames
network.Add(New PerformanceCounter())
With network(i)
.CategoryName = "Network Interface"
.CounterName = "Bytes Total/sec"
.InstanceName = instancename
.MachineName = ip_address
End With
Try
network_usage = network_usage + network(i).NextValue()
Catch ex As Exception
End Try
i = i + 1
Next
问题是当我尝试获取下一个值时,从代码的第一部分生成的名称会引发异常:“指定类别中不存在实例'本地连接 * 12'。”
检索到的名称似乎与在特定服务器上查看 perfmon 时使用的名称不同,但不确定这是否重要