Есть ли способ в PowerShell автоматически определить, какой из нескольких сетевых адаптеров имеет доступ к Интернету, а не подключение к закрытой сети?
Скажем, у компьютера есть один сетевой адаптер, который обычно может выходить в Интернет, и другой сетевой адаптер, подключенный к небольшой сети научных устройств. Они оба имеют IP-адреса и видят «сеть». Существует ли общий способ определения подключенного интернета ?
Я знаю о:
gwmi win32_networkadapterconfiguration -filter "ipenabled = 'true'"
а также
gwmi win32_networkadapter -filter "NetConnectionStatus LIKE '2'"
а также
Get-NetAdapter | ? {($_.status -eq 'up')
но это не для меня ясно , что эти фильтры идентификации Интернет доступа против всего доступа к сети, и , к сожалению, у меня нет доступа к машине с такой установкой , чтобы проверить.
Благодарю.
источник
test-connection
у меня есть-source
выбор. Это именно то, что я искал! К сожалению,-source
и-quiet
не могут быть использованы оба.Я считаю, что лучшим способом было бы проверить, какой адаптер использует маршрут по умолчанию.
Это даст вам
ifIndex
адаптер, который должен быть подключен к Интернету. То же самоеifIndex
можно использовать для получения адаптера ...источник
Find-NetRoute -RemoteIPAddress 8.8.8.8
чтобы получить индекс интерфейса, который будет направлять трафик к этому IP.