2 Stimmen

WMI zur Abfrage aktiver Netzwerke und zugehöriger Verbindungen

Ich muss die Netzwerkeinstellungen ändern, wie es in dieser Artikel . Das funktioniert so weit gut. Allerdings muss ich auch wissen, in welchem aktiven Netz ich die Änderungen vornehme.

(Für ein besseres Verständnis öffnen Sie bitte Control Panel\Network and Internet\ Network and Sharing Center . Leider sind alle Bilder-Hosting-Seiten von meiner Firma gesperrt, so dass ich keinen Screenshot posten kann).

Kann mir jemand helfen, wie ich mit WMI (oder einer anderen Technologie) abfragen kann, welche Verbindung mit welchem Netzwerk verbunden ist?

UPDATE:
Ich muss einen entfernten Rechner abfragen.

5voto

TheCodeKing Punkte 18776

Sie können die NetworkListManager COM-Komponente, entweder mit dynamisch wie unten gezeigt oder mit der Windows-API-Codepaket die alle COM-Wrapper enthält.

dynamic networkListManager = Activator.CreateInstance(
     Type.GetTypeFromCLSID(new Guid("{DCB00C01-570F-4A9B-8D69-199FDBA5723B}")));

var connections = networkListManager.GetNetworkConnections();
foreach (var connection in connections)
{
    var network = connection.GetNetwork();
    Console.WriteLine("Network Name: " + network.GetName());
    Console.WriteLine("Network Category " + 
        network.GetCategory()+ " (0 public / 1 private / 2 Authenticated AD)" );

}

PowerShell:

$networkType = [Type]::GetTypeFromCLSID('DCB00C01-570F-4A9B-8D69-199FDBA5723B')
$networkListManager = [Activator]::CreateInstance($networkType)

$netWorks = $networkListManager.GetNetworkConnections()

foreach ($network in $netWorks)
{
    $name = $network.GetName()
    $category = $network.GetCategory()

    write-host "Network Name: $name"
    write-host "Network Category: $category"
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X