Вопрос WIN32_NetworkAdapterConfiguration не сообщает IP из адаптера PPP


На устройстве Windows 7 следующий запрос WMI не сообщает о возвращенном PPP-адаптере:

Select Index,MACAddress,IPAddress,IPSubnet,DefaultIPGateway,DNSServerSearchOrder from Win32_NetworkAdapterConfiguration where IPEnabled=true

где IPCONFIG дает вам всю информацию:

Конфигурация Windows IP

PPP адаптер XYZ VPN:

Суффикс DNS для подключения. :   Адрес IPv4. , , , , , , , , , , :   123.456.789.123
  Маска подсети . , , , , , , , , , , : 255.255.255.255
  Шлюз по умолчанию . , , , , , , , , :   0.0.0.0

Беспроводная сеть   Подключение:

Суффикс DNS для подключения. :   Адрес IPv4. , , , , , , , , , , :   192.168.178.11
  Маска подсети . , , , , , , , , , , : 255.255.255.0
  Шлюз по умолчанию . , , , , , , , , :   192.168.178.1

Подключение к локальной сети Ethernet   3:

Состояние СМИ. , , , , , , , , , , :   Медиа отключено
  Суффикс DNS для подключения. :

Любые идеи, как я могу создать сценарий с помощью WMI или VBS?


4
2018-04-27 15:42


происхождения


Вы нашли решение? Я испытываю ту же проблему на Win7 (x86). - AlexS


ответы:


Это ошибка который присутствовал в Vista и не был исправлен через Windows 7 или Windows 8.

Для получения этой информации вы должны использовать либо .NET, либо C ++ API. Я думаю, что проще всего использовать Powershell с .NET:

$nics = [System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces()
foreach ($nic in $nics) {
    write-host $nic.name
    write-host "MAC Address $($nic.GetPhysicalAddress)"
    $props = $nic.GetIPProperties()
    $addresses = $props.UnicastAddresses
    foreach ($addr in $addresses) {
        write-host "IP Address: $($addr.Address.IPAddressToString)"
        write-host "IPv4 Mask: $($addr.IPv4Mask.IPAddressToString)"
    }
    write-host "Gateway: $($props.GatewayAddresses.Address.IPAddressToString)"
    write-host "DNS Server(s): $($props.DnsAddresses.IPAddressToString)"
    write-host ""
}

Видеть документация класса NetworkInterface для получения информации об использовании этого класса .NET с C #, VB или C ++.


2
2017-09-23 16:52





On Error Resume Next

strComputer= "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")

Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")

For Each objItem In colItems
      strIPAddress = Join(objItem.IPAddress, ",")

      WScript.Echo "IPAddress: " & strIPAddress

Next

0
2018-05-17 14:06



Это не отвечает на вопрос! - AlexS