禁用与启用网络适配器

我的办公电脑无法使用网线连接办公室的交换机,又因为是台式机,尝试过使用那种USB的无线网卡,经常掉线不说,拷贝东西的时候它也掉线、掉网速。
正好家里有台闲置的路由器,拿来桥接一下(路由器连接办公WiFi,电脑使用网线连接路由器),避免使用USB接口拷贝文件时掉线的问题。
可是依然会偶尔断网,可能是那个路由器有点水货吧,此时需要重启网络适配器……
这种重复的操作,当然是交给计算机本身就好,我们只需要写好脚本/程序,需要的时候双击它,完美!!!

手动禁用与启用的方法
1、找到“网络连接”
image
2、右击禁用或启用网络适配器
image

为了避免每次都手动去禁用、启用它,可用使用批处理文件来一键禁用重启网络适配器
批处理(简版)

点击查看代码
@echo off
::先使用 netsh interface show interface 命令查看接口名称,我的接口名称是"以太网"
::下面的以太网需要替换成你的接口名称
netsh interface set interface 以太网 disabled
timeout /t 2
netsh interface set interface 以太网 enabled

为了更加通用,需要修改代码,实现自动管理员权限,自动获取接口名称。
批处理(通用版)AI修改

点击查看代码
@echo off
setlocal enabledelayedexpansion

:: ============================================================================
:: 脚本名称: 网络适配器一键重启工具 (PowerShell版)
:: 功能: 自动以管理员权限禁用并启用所有网络适配器
:: 作者: AI Assistant
:: 日期: 2025-12-02
:: ============================================================================

title 网络适配器重启工具
color 0A

:: ============================================================================
:: 1. 检查管理员权限
:: ============================================================================
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo [错误] 请以管理员身份运行此脚本!
    echo.
    echo 正在尝试以管理员身份重新启动...
    powershell -command "Start-Process cmd -ArgumentList '/c \"%~f0\"' -Verb RunAs"
    exit /b
)
echo [信息] 已获得管理员权限。
echo.

:: ============================================================================
:: 2. 使用 PowerShell 获取所有网络适配器列表
:: ============================================================================
echo [步骤 1/4] 正在获取所有网络适配器列表...
set "adapter_count=0"

:: 使用 PowerShell 的 Get-CimInstance 命令获取适配器,这是 WMIC 的现代替代品
:: 它更稳定、性能更好,并且是 Windows 的未来方向
for /f "usebackq tokens=*" %%a in (
    `powershell -NoProfile -Command "Get-CimInstance -ClassName Win32_NetworkAdapter | Where-Object { $_.NetConnectionStatus -ne $null } | Select-Object -ExpandProperty NetConnectionID"`
) do (
    if not "%%a"=="" (
        set /a adapter_count+=1
        set "adapter_!adapter_count!=%%a"
        echo   - 找到适配器: %%a
    )
)
echo.

if %adapter_count% equ 0 (
    echo [警告] 未找到任何可管理的网络适配器。
    goto :end
)

:: ============================================================================
:: 3. 禁用所有找到的网络适配器
:: ============================================================================
echo [步骤 2/4] 正在禁用所有找到的网络适配器...
for /l %%i in (1,1,%adapter_count%) do (
    set "current_adapter=!adapter_%%i!"
    echo   - 正在禁用 "!current_adapter!"...
    netsh interface set interface name="!current_adapter!" admin=disabled >nul 2>&1
    if !errorlevel! equ 0 (
        echo     [成功]
    ) else (
        echo     [失败] (可能无法禁用此适配器或已被禁用)
    )
)
echo.

:: ============================================================================
:: 4. 等待
:: ============================================================================
echo [步骤 3/4] 等待 3 秒,以便系统释放网络资源...
timeout /t 3 /nobreak >nul
echo.

:: ============================================================================
:: 5. 启用所有之前禁用的网络适配器
:: ============================================================================
echo [步骤 4/4] 正在启用所有之前禁用的网络适配器...
for /l %%i in (1,1,%adapter_count%) do (
    set "current_adapter=!adapter_%%i!"
    echo   - 正在启用 "!current_adapter!"...
    netsh interface set interface name="!current_adapter!" admin=enabled >nul 2>&1
    if !errorlevel! equ 0 (
        echo     [成功]
    ) else (
        echo     [失败]
    )
)
echo.

:end
:: ============================================================================
:: 6. 结束
:: ============================================================================
echo ========================================
echo           操作已完成!
echo ========================================
echo.
pause
exit

温馨提示:需要管理员权限运行!!!
点此下载已经编译好的程序

posted @ 2025-12-01 20:52  xlifevr  阅读(62)  评论(0)    收藏  举报