Я пытаюсь получить 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 ""
}