Вопрос или проблема
Есть ли способ быстро переключать интернет-соединение на моем ПК, включая проводные соединения? Каждый раз, когда я хочу выйти в офлайн, мне приходится открывать Панель управления и отключать/включать 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 (спасибо 🙏), но сделал следующие изменения:
- Добавил способ запустить скрипт
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"
-
Нет необходимости искать
$adapterName
, если у вас только один физический адаптер. -
Не ждите, пока пользователь нажмет [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: Использование пакетного файла
Вы можете создать пакетный файл, который будет автоматически отключать и включать ваше проводное соединение. Вот как это сделать:
- Создайте текстовый файл и дайте ему расширение
.bat
(например,toggle_network.bat
). - Добавьте следующие команды в файл:
@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
-
Измените
"Имя вашего адаптера"
на фактическое имя вашего Ethernet-адаптера. Вы можете узнать это имя, выполнив командуnetsh interface show interface
в командной строке. -
Сохраните файл и дважды щелкните по нему, чтобы выполнить.
Метод 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 — утилита для управления драйверами устройств.
Создание ярлыка на рабочем столе
Чтобы упростить доступ к созданным скриптам, вы можете создать ярлык на рабочем столе:
- Создайте ярлык для вашего пакетного файла или PowerShell скрипта.
-
Настройте свойства ярлыка, чтобы он запускался от имени администратора.
Этим способом вы сможете быстро отключать и включать свое проводное соединение всего в несколько кликов.
Заключение
С помощью описанных методов вы сможете легко управлять подключением к интернету на вашем ПК с Windows 10, устранив лишние шаги и повысив свою продуктивность. Выбор между пакетными файлами, PowerShell скриптами или сторонними утилитами зависит от ваших предпочтений и уровня комфорта с этими инструментами.