WIN32_NetworkAdapterConfiguration, PPP adaptöründen IP bildiriyor


4

Windows 7 aygıtında, aşağıdaki WMI sorgusu etkin bir PPP bağdaştırıcısını geri bildirmiyor:

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

Nerede ipconfig doğru size tüm bilgileri verir:

Windows IP Yapılandırması

PPP adaptörü XYZ VPN:

Bağlantıya özgü DNS Soneki. : IPv4 Adresi. . . . . . . . . . . : 123.456.789.123
Alt Ağ Maskesi. . . . . . . . . . . : 255.255.255.255
Varsayılan Ağ Geçidi. . . . . . . . . : 0.0.0.0

Kablosuz LAN adaptörü Kablosuz Ağ Bağlantısı:

Bağlantıya özgü DNS Soneki. : IPv4 Adresi. . . . . . . . . . . : 192.168.178.11
Alt Ağ Maskesi. . . . . . . . . . . : 255.255.255.0
Varsayılan Ağ Geçidi. . . . . . . . . : 192.168.178.1

Ethernet adaptörü Yerel Alan Bağlantısı 3:

Medya Devleti. . . . . . . . . . . : Medya bağlantısı kesildi
Bağlantıya özgü DNS Soneki. :

WMI veya VBS kullanarak bunu nasıl kodlayabileceğime dair bir fikrim var mı?


Buna bir çözüm buldunuz mu? Win7'de de aynı sorunu yaşıyorum (x86).
AlexS

Yanıtlar:


2

Bu, Vista'da bulunan ve Windows 7 veya Windows 8 üzerinden düzeltilmeyen bir hatadır .

Bu bilgiyi almak için .NET veya C ++ API'lerini kullanmanız gerekir. Sanırım yapılacak en kolay şey Powershell'i .NET ile kullanmak.

$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 ""
}

Bu .NET sınıfını C #, VB veya C ++ ile kullanma hakkında bilgi için NetworkInterface sınıfı belgelerine bakın .


0
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

Bu soruya cevap vermiyor!
AlexS
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.