Skip to main content

Файл быстрого переключения настроек сетевой карты

@echo off
chcp 65001 >nul
title Переключение сетевого интерфейса

:: === ИМЯ СЕТЕВОГО ИНТЕРФЕЙСА ===
set IFACE=Ethernet

:MENU
cls
echo ===============================
echo  Переключение сетевых настроек
echo ===============================
echo.
echo 1 - Статический IP
echo 2 - DHCP
echo.
echo 0 - Выход
echo.
set /p CHOICE=Выберите режим: 

if "%CHOICE%"=="1" goto STATIC
if "%CHOICE%"=="2" goto DHCP
if "%CHOICE%"=="0" exit

goto MENU

:STATIC
echo.
echo Установка статического IP...
netsh interface ip set address name="%IFACE%" static 10.44.100.200 255.255.255.0 10.44.100.1 1
netsh interface ip set dns name="%IFACE%" static 10.5.8.8
netsh interface ip add dns name="%IFACE%" 10.5.1.1 index=2
echo Готово.
pause
goto MENU

:DHCP
echo.
echo Включение DHCP...
netsh interface ip set address name="%IFACE%" dhcp
netsh interface ip set dns name="%IFACE%" static 77.88.8.8
netsh interface ip add dns name="%IFACE%" 8.8.8.8 index=2
echo Готово.
pause
goto MENU
Красивый вариант на PowerShell

Отлично 👍 Тогда сделаем PowerShell-скрипт с графическим окном (GUI) и две красивые кнопки:
«Статический IP» и «DHCP».

Будет выглядеть как маленькое приложение.


🔧 Что в итоге получится

  • Окно Windows

  • Кнопка 🟦 Статический IP

  • Кнопка 🟩 DHCP

  • Работает в 1 клик

  • Запуск с правами администратора

  • Можно вынести один ярлык на рабочий стол


1️⃣ PowerShell-скрипт (GUI)

Создай файл, например:

C:\Scripts\Network\network-switch.ps1

📄 network-switch.ps1



Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

# ===== НАСТРОЙКИ =====
$InterfaceName = "Ethernet"
$StaticIP      = "10.44.100.200"
$Mask          = "255.255.255.0"
$Gateway       = "10.44.100.1"
$DNS1          = "10.5.8.8"
$DNS2          = "10.5.1.1"
$DNS3          = "77.88.8.8"

# ===== ФОРМА =====
$form = New-Object System.Windows.Forms.Form
$form.Text = "Переключение сети"
$form.Size = New-Object System.Drawing.Size(320,200)
$form.StartPosition = "CenterScreen"
$form.FormBorderStyle = "FixedDialog"
$form.MaximizeBox = $false

# ===== КНОПКА: СТАТИЧЕСКИЙ IP =====
$btnStatic = New-Object System.Windows.Forms.Button
$btnStatic.Text = "🟦 Статический IP"
$btnStatic.Size = New-Object System.Drawing.Size(240,40)
$btnStatic.Location = New-Object System.Drawing.Point(30,30)
$btnStatic.Font = New-Object System.Drawing.Font("Segoe UI",10,[System.Drawing.FontStyle]::Bold)

$btnStatic.Add_Click({
    netsh interface ip set address name="$InterfaceName" static $StaticIP $Mask $Gateway 1
    netsh interface ip set dns name="$InterfaceName" static $DNS1
    netsh interface ip add dns name="$InterfaceName" $DNS2 index=2
    [System.Windows.Forms.MessageBox]::Show("Статический IP установлен","Готово")
})

# ===== КНОПКА: DHCP =====
$btnDhcp = New-Object System.Windows.Forms.Button
$btnDhcp.Text = "🟩 DHCP"
$btnDhcp.Size = New-Object System.Drawing.Size(240,40)
$btnDhcp.Location = New-Object System.Drawing.Point(30,90)
$btnDhcp.Font = New-Object System.Drawing.Font("Segoe UI",10,[System.Drawing.FontStyle]::Bold)

$btnDhcp.Add_Click({
    netsh interface ip set address name="$InterfaceName" dhcp
    netsh interface ip set dns name="$InterfaceName" static $DNS3
    [System.Windows.Forms.MessageBox]::Show("DHCP включён","Готово")
})

$form.Controls.Add($btnStatic)
$form.Controls.Add($btnDhcp)

$form.ShowDialog()

📌 Если интерфейс Wi-Fi, поменяй:



$InterfaceName = "Wi-Fi"

2️⃣ Разрешаем запуск PowerShell-скриптов (1 раз)

Открой PowerShell от имени администратора и выполни:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser


3️⃣ Создаём ярлык на рабочем столе

🔹 Команда запуска

В ярлыке укажи:

Объект:

powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\Network\network-switch.ps1"

Рабочая папка:

C:\Scripts\Network 


🔹 Включаем запуск от администратора

  1. ПКМ → Свойства

  2. Дополнительно

  3. ✅ Запуск от имени администратора


4️⃣ Красивую иконку 🎨

  • ПКМ → Сменить значок

  • Возьми из:


C:\Windows\System32\imageres.dll

Рекомендую:

  • 🌐 сеть

  • 🔁 переключение

  • 🛠 настройки

Делаем приложение через Autohotkey
#NoEnv
#SingleInstance Force
#Persistent
SetWorkingDir %A_ScriptDir%

; ==== НАСТРОЙКИ ====
Interface := "Ethernet"
StaticIP  := "10.44.100.109"
Mask      := "255.255.255.0"
Gateway   := "10.44.100.1"
DNS1      := "10.4.0.55"
DNS2      := "10.4.0.68"
DNS3      := "77.88.8.8"

; ==== ТРЕЙ ====
Menu, Tray, NoStandard
Menu, Tray, Add, STATIC IP, SetStatic
Menu, Tray, Add, DHCP, SetDHCP
Menu, Tray, Add
Menu, Tray, Add, EXIT, TrayExit
Menu, Tray, Click, 1

return

; ==========================
SetStatic:
    RunWait, %ComSpec% /c netsh interface ip set address name="%Interface%" static %StaticIP% %Mask% %Gateway% 1,, Hide
    RunWait, %ComSpec% /c netsh interface ip set dns name="%Interface%" static %DNS1% primary,, Hide
    RunWait, %ComSpec% /c netsh interface ip add dns name="%Interface%" %DNS2% index=2,, Hide
    TrayTip, IP change, Режим STATIC IP установлен, 1, 1
return

; ==========================
SetDHCP:
    RunWait, %ComSpec% /c netsh interface ip set address name="%Interface%" dhcp,, Hide
    RunWait, %ComSpec% /c netsh interface ip set dns name="%Interface%" static %DNS3%,, Hide
    TrayTip, IP change, Режим DHCP установлен, 1, 1
return

TrayExit:
ExitApp