Использование WMI для определения, какой адаптер (ы) подключен к Интернету - PullRequest
2 голосов
/ 19 июля 2010

Я пишу сценарий VB, который использует WMI, чтобы определить, какой адаптер используется для подключения к Интернету? Например - если у меня есть локальная сеть и плата 3G, она должна сообщить пользователю, который подключен. Я понимаю, что машина может иметь> 1 подключение к Интернету, но сейчас давайте предположим, что 1.

редактирование: Хорошо, как я могу сделать это, используя любой инструмент команды? Учитывая грохочущую тишину, я думаю, что это невозможно с помощью WMI. :-) Будет ли отслеживать работу печати? Я не слишком знаком с трассировкой.

Заранее спасибо за любую помощь! Рич

1 Ответ

3 голосов
/ 26 августа 2010

Используя Win32_NetworkAdapterConfiguration найдите сетевое устройство с самым низким IPConnectionMetric , это будет первое устройство, используемое для доступа в Интернет.

strComputer = "."
Set objWMIService = GetObject(_
    "winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration")

metric = 500
description = ""

For Each objItem in colItems
    If (objItem.IPConnectionMetric < metric AND objItem.IPConnectionMetric >= 0) then
        metric = objItem.IPConnectionMetric
        description = objItem.Description
    End If
Next

Set WshShell = CreateObject("WScript.Shell")
WshShell.Popup(description)

Примеры VBScript для доступа к WMI можно найти на MSDN

...