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

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

DNS-суффикс подключения . :
Адрес IPv4. . . . . . . . . . . :
192.168.178.11


маска подсети. . . . . . . . . . . : 255.255.255.0


шлюз по умолчанию. . . . . . . . . :
192.168.178.1

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

СМИ Государства . . . . . . . . . . . :
Медиа отключен


DNS-суффикс подключения . :

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

8
задан 3498DB
22.02.2023 15:47 Количество просмотров материала 3618
Распечатать страницу

2 ответа

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

для получения этой информации необходимо использовать API .NET или C++. Я думаю, что проще всего использовать 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
отвечен Micah R Ledbetter 2023-02-23 23:35
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
отвечен Michael 2023-02-24 01:52

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх