Назад | Перейти на главную страницу

Powershell Win32_NetworkAdapterConfiguration «не видит» адаптер PPP

Я пытаюсь получить IP-адрес сетевого подключения PPP VPN, но Win32_NetworkAdapterConfiguration, похоже, его не «видит».

Если я опрошу все адаптеры с помощью своего сценария, он увидит все, кроме адаптера PPP VPN. Есть ли какой-то конкретный фильтр или что-то, что мне нужно включить, или мне нужен другой класс?

Мой сценарий:

$colItems = Get-wmiobject Win32_NetworkAdapterConfiguration
foreach ($objItem in $colItems) {
    Write-Host Description: $objItem.Description
    Write-Host IP Address: $objItem.IPAddress
    Write-Host ""
}

Вывод сценария:

Description: WAN Miniport (SSTP)
IP Address:

Description: WAN Miniport (IKEv2)
IP Address:

Description: WAN Miniport (L2TP)
IP Address:

Description: WAN Miniport (PPTP)
IP Address:

Description: WAN Miniport (PPPOE)
IP Address:

Description: WAN Miniport (IPv6)
IP Address:

Description: WAN Miniport (Network Monitor)
IP Address:

Description: Intel(R) PRO/Wireless 3945ABG Network Connection
IP Address: 192.168.2.5

Description: WAN Miniport (IP)
IP Address:

ipconfig / весь вывод:

PPP adapter My VPN:

   Connection-specific DNS Suffix  . : 
   Description . . . . . . . . . . . : My VPN
   Physical Address. . . . . . . . . : 
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 10.1.8.12(Preferred) 
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . : 0.0.0.0
   DNS Servers . . . . . . . . . . . : 10.1.1.3
                                       10.1.1.2
   Primary WINS Server . . . . . . . : 10.1.1.2
   Secondary WINS Server . . . . . . : 10.1.1.3
   NetBIOS over Tcpip. . . . . . . . : Enabled



Wireless LAN adapter Wireless Network Connection:

   Connection-specific DNS Suffix  . : Belkin
   Description . . . . . . . . . . . : Intel(R) PRO/Wireless 3945ABG Network Connection
   Physical Address. . . . . . . . . : 00-3F-3C-22-22-22
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 192.168.2.5(Preferred) 
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : 25 May 2010 20:33:19
   Lease Expires . . . . . . . . . . : 22 May 2020 20:33:17
   Default Gateway . . . . . . . . . : 192.168.2.1
   DHCP Server . . . . . . . . . . . : 192.168.2.1
   DNS Servers . . . . . . . . . . . : 192.168.2.1
   NetBIOS over Tcpip. . . . . . . . : Enabled

Заранее спасибо,

Бен

Вместо этого используйте класс MSFT_NetIPAddress.

Пример Powershell:

gwmi MSFT_NetIPAddress -Namespace 'root/standardcimv2' | format-list -Property InterfaceAlias,IPAddress

Это ошибка это присутствовало в Vista и не было исправлено в Windows 7 или Windows 8. Чтобы получить эту информацию, вам нужно вызвать .NET API непосредственно из Powershell.

$nics = [System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces()
foreach ($nic in $nics) {
    write-host $nic.name
    $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.

Я знаю, что это очень старая ветка, но я все же опубликую то, как я ею управляю, чтобы она могла помочь кому-то вроде меня, так как я не мог найти готового решения.

Это происходит через несколько хостов и их сетевых адаптеров. Он показывает ВСЕ IP-адреса сетевых адаптеров, но не по умолчанию.

Get-wmiobject Win32_NetworkAdapterConfiguration -filter IPEnabled=TRUE -computername localhost,127.0.0.1 | ForEach-Object -Process {
    Write-Host Server: $_.__SERVER
    Write-Host Adapter name: $_.Description
    Write-Host IP Addresses: $_.IPAddress
    Write-Host ""
}