Переключатель Windows для отключения/включения проводного соединения

Вопрос или проблема

Есть ли способ быстро переключать интернет-соединение на моем ПК, включая проводные соединения? Каждый раз, когда я хочу выйти в офлайн, мне приходится открывать Панель управления и отключать/включать Ethernet-адаптер, что очень неудобно. (Примечание: я на Windows 10)

Вы можете создать пакетный файл с командами NETSH WLAN CONNECT и DISCONNECT.

NETSH WLAN DISCONNECT Interface= ...

NETS WLAN CONNECT  Interface= ...

Отключение беспроводной сети приведет к подключению проводной сети.

Если Ethernet не подключен, отключение беспроводной сети переведет вас в офлайн.

Если параметры по умолчанию установлены на автоматические, все это произойдет автоматически. Я делаю это на своем компьютере с Windows 10.

Вот скрипт PowerShell, который позволит вам включать и выключать ваш LAN-адаптер

Не забудьте изменить имя вашего адаптера:

# Проверьте, запущен ли скрипт от имени администратора
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
    Write-Output "Перезапуск скрипта от имени администратора..."
    Start-Process powershell -ArgumentList "-NoProfile", "-ExecutionPolicy Bypass", "-File `"$PSCommandPath`"" -Verb RunAs
    exit
}

# Скрипт для переключения LAN-адаптера включен или выключен

# Определите имя вашего LAN-адаптера
$adapterName = "Введите имя вашего адаптера здесь"

# Получите статус сетевого адаптера
$adapter = Get-NetAdapter -Name $adapterName -ErrorAction SilentlyContinue

if ($null -eq $adapter) {
    Write-Output "Адаптер не найден. Пожалуйста, проверьте имя адаптера."
    Read-Host -Prompt "Нажмите Enter, чтобы закрыть это окно"
    exit
}

# Проверьте текущий статус и переключите его
if ($adapter.Status -eq "Up") {
    Write-Output "Отключение адаптера..."
    Disable-NetAdapter -Name $adapterName -Confirm:$false
    Write-Output "Адаптер отключен."
} elseif ($adapter.Status -eq "Disabled") {
    Write-Output "Включение адаптера..."
    Enable-NetAdapter -Name $adapterName -Confirm:$false
    Write-Output "Адаптер включен."
} else {
    Write-Output "Адаптер находится в неизвестном состоянии: $($adapter.Status)"
}

# Ждите ввода пользователя перед закрытием окна
Read-Host -Prompt "Нажмите Enter, чтобы закрыть это окно"

Есть решение, не требующее указания названий интерфейсов, например, для работы в разных локализациях. С помощью CNic (36KB) я использую CNic n:0 -c&pause&CNic n:0 -d для переключения проводного соединения. CNic -l выведет список ваших интерфейсов. Или devcon (76KB).

Это решение позволяет сделать ярлык на панель задач, который требует всего лишь одного двойного щелчка:

Я использовал ответ dexter00 (спасибо 🙏), но сделал следующие изменения:

  1. Добавил способ запустить скрипт toggle_wlan.ps1, обходя локальные политики ПК:

Либо создайте пакетный файл, содержащий:

powershell.exe -executionpolicy bypass -file .\toggle_wlan.ps1

Либо ярлык в меню «Пуск», который запускается в той же директории, что и ваш .ps1 файл, и выполняет:

C:\Windows\System32\cmd.exe /c "powershell.exe -executionpolicy bypass -file .\toggle_wlan.ps1"
  1. Нет необходимости искать $adapterName, если у вас только один физический адаптер.

  2. Не ждите, пока пользователь нажмет [enter], а автоматически выходите через 1,5 секунды

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
    Start-Process powershell -ArgumentList "-NoProfile", "-ExecutionPolicy Bypass", "-File `"$PSCommandPath`"" -Verb RunAs
} else {
    $adapterName = "*"
    $adapter = Get-NetAdapter -Name $adapterName -Physical

    if ($null -eq $adapter) {
        Write-Output "Адаптер не найден. Пожалуйста, проверьте имя адаптера."
        Read-Host -Prompt "Нажмите Enter, чтобы закрыть это окно"
        exit
    }

    if ($adapter.Status -eq "Up") {
        Disable-NetAdapter -Name $adapterName -Confirm:$false
        Write-Output "Адаптер отключен."
    } else {
        Enable-NetAdapter -Name $adapterName -Confirm:$false
        Write-Output "Адаптер включен."
    }
}
Write-Output "До свидания"
Start-Sleep -Seconds 1.5

Ответ или решение

Как быстро отключить и включить проводное соединение в Windows 10

Если вы ищете простой способ быстро отключить и включить проводное соединение на своем ПК с Windows 10, то вы пришли по адресу. Частое открытие "Панели управления" или "Настройки" для отключения и включения Ethernet-адаптера может быть неудобным и времязатратным. Есть несколько вариантов решения этой задачи, включая использование пакетных файлов и PowerShell скриптов.

Метод 1: Использование пакетного файла

Вы можете создать пакетный файл, который будет автоматически отключать и включать ваше проводное соединение. Вот как это сделать:

  1. Создайте текстовый файл и дайте ему расширение .bat (например, toggle_network.bat).
  2. Добавьте следующие команды в файл:
@echo off
setlocal

:: Укажите название вашего Ethernet-адаптера
set adapterName="Имя вашего адаптера"

:: Получаем статус адаптера
for /f "tokens=2 delims=:" %%a in ('netsh interface show interface name=%adapterName% ^| findstr /R /C:"Состояние"') do set adapterState=%%a

if "%adapterState%"==" Включен " (
    echo Отключение адаптера...
    netsh interface set interface name=%adapterName% admin=disabled
    echo Адаптер отключен.
) else (
    echo Включение адаптера...
    netsh interface set interface name=%adapterName% admin=enabled
    echo Адаптер включен.
)

endlocal
pause
  1. Измените "Имя вашего адаптера" на фактическое имя вашего Ethernet-адаптера. Вы можете узнать это имя, выполнив команду netsh interface show interface в командной строке.

  2. Сохраните файл и дважды щелкните по нему, чтобы выполнить.

Метод 2: Использование PowerShell скрипта

Если вы предпочитаете использовать PowerShell, вы можете написать скрипт для включения и отключения вашего сетевого адаптера:

# Проверка, запущен ли скрипт с правами администратора
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
    Start-Process powershell -ArgumentList "-NoProfile", "-ExecutionPolicy Bypass", "-File `"$PSCommandPath`"" -Verb RunAs
    exit
}

# Определите название вашего LAN-адаптера
$adapterName = "Имя вашего адаптера"

# Получаем статус адаптера
$adapter = Get-NetAdapter -Name $adapterName -ErrorAction SilentlyContinue

if ($null -eq $adapter) {
    Write-Output "Адаптер не найден. Проверьте название адаптера."
    exit
}

# Проверка текущего статуса и переключение
if ($adapter.Status -eq "Up") {
    Disable-NetAdapter -Name $adapterName -Confirm:$false
    Write-Output "Адаптер отключен."
} else {
    Enable-NetAdapter -Name $adapterName -Confirm:$false
    Write-Output "Адаптер включен."
}

Метод 3: Использование сторонних утилит

Если вам не подходит написание скриптов, вы можете воспользоваться сторонними утилитами, такими как:

  • CNic, которая позволяет переключать сетевые соединения. Используйте команды CNic n:0 -c для отключения и CNic n:0 -d для включения адаптера.
  • Devcon — утилита для управления драйверами устройств.

Создание ярлыка на рабочем столе

Чтобы упростить доступ к созданным скриптам, вы можете создать ярлык на рабочем столе:

  1. Создайте ярлык для вашего пакетного файла или PowerShell скрипта.
  2. Настройте свойства ярлыка, чтобы он запускался от имени администратора.

    Этим способом вы сможете быстро отключать и включать свое проводное соединение всего в несколько кликов.

Заключение

С помощью описанных методов вы сможете легко управлять подключением к интернету на вашем ПК с Windows 10, устранив лишние шаги и повысив свою продуктивность. Выбор между пакетными файлами, PowerShell скриптами или сторонними утилитами зависит от ваших предпочтений и уровня комфорта с этими инструментами.

Оцените материал
Добавить комментарий

Капча загружается...