3

Мне было интересно, если существует пакетный сценарий для автоматического отключения адаптера Ethernet и включения адаптера Wi-Fi, я думаю, что это потребует некоторых действий с идентификаторами и т.д.

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

Другая возможность заключается в том, существует ли способ настроить определенные программы на игнорирование адаптера, то есть заставить Google Chrome и т.д. Не использовать Ethernet, в то время как все остальное по умолчанию имеет обычный?

Конец Результат благодаря Сету

if( (Get-NetAdapter -Name "WiFi").Status -eq "Disabled"){
  Disable-NetAdapter -Name "Ethernet"
  Enable-NetAdapter -Name "Wifi"
  "Wifi enabled, Ethernet disabled"
}else{
  Disable-NetAdapter -Name "Wifi"
  Enable-NetAdapter -Name "Ethernet"
  "Ethernet enabled, Wifi disabled"
}

Причина, по которой он проверяет наличие или отключение, а не включение, заключается в том, что статус не активирован (что я видел в моем скоростном чтении) (этот статус делится на соединение и т.д.).

Для собственного удобства я превратил его в командный файл, используя флаг -EncodedCommand для powershell.

1 ответ1

5

Если вы посмотрите на этот вопрос: как я могу написать командный файл для переключения моих сетевых адаптеров?

Вы увидите, что доступно несколько вариантов. Как вы говорите, вы используете Windows 10. Я бы предпочел использовать скрипт PowerShell. Это может быть так же просто, как объединение Get-NetAdapter, Enable-NetAdapter и Disable-NetAdapter.

У меня нет Windows 10, но она будет выглядеть примерно так:

if( (Get-NetAdapter -Name "WLAN").Enabled -eq $True){
  Disable-NetAdapter -Name "WLAN"
  Enable-NetAdapter -Name "LAN"
}else{
  Disable-NetAdapter -Name "LAN"
  Enable-NetAdapter -Name "WLAN"
}

Это не имеет никакой обработки ошибок, поэтому, вероятно, есть много случаев, которые не охвачены. Если бы вы захотели сделать это в пакете, вы могли бы следовать той же схеме, но использовать netsh и вместо этого он выводил. Также взгляните на вопрос, который имеет больше информации на этот счет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .