1

私の基本的な問題は、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

問題は、次の値を取得しようとすると、コードの最初の部分から生成された名前で例外が発生することです。「インスタンス 'Local Area Connection* 12' は指定されたカテゴリに存在しません。

取得された名前は、特定のサーバーで perfmon を見るときに使用された名前とは異なるようですが、これが問題になるかどうかはわかりません

4

0 に答える 0