2

というか、それについて何ができますか?

私の目的は、.NET を使用して、ホーム ネットワーク内のアクセス可能なすべてのネットワーク デバイスを一覧表示することです。できれば、WIN32 API を掘り下げたり、一連のファンキーな WMI クエリに頼ったりする必要はありません。

次のコードはまさにそれを行います。

    Imports System.DirectoryServices

    (...)

    Dim network As New DirectoryEntry()

    network.Path = "WinNT:"

    For Each workgroup As DirectoryEntry In network.Children()

        For Each computer As DirectoryEntry In workgroup.Children

            If computer.SchemaClassName = "Computer" Then
                Console.WriteLine(computer.Name)
            End If

        Next

    Next

ただし、このコードを実行するとChildren、DirectoryEntry インスタンスの getter にアクセスするときに、非常に顕著な遅延が発生します。私のネットワークには、3 台のデバイスが接続された 1 つのワークグループしかありませんが。大規模なサブネットでは、問題がさらに悪化することが想像できます。

繰り返しますが、これはなぜですか?どうすればよいですか?

4

0 に答える 0