如何在Windows 10中仅针对特定Wi-Fi网络禁用IPv6连接
如何在Windows 10中仅针对特定Wi-Fi网络禁用IPv6连接
嘿,这个场景我太懂了!来回手动开关IPv6真的是折腾人,下面给你两个靠谱的自动解决方法,不用再每次手动调设置:
方法一:PowerShell脚本 + 任务计划自动触发
这个方法能让Windows在你连接到家里的VPN路由器Wi-Fi时自动禁用IPv6,断开时自动恢复,完全不用手动干预。
步骤1:准备两个PowerShell脚本
首先打开记事本,分别创建两个脚本:
禁用IPv6的脚本(命名为Disable-IPv6.ps1)
# 获取当前Wi-Fi适配器名称(一般是"Wi-Fi",如果你的不一样可以在网络适配器里查看) $adapterName = "Wi-Fi" # 禁用该适配器的IPv6 netsh interface ipv6 set interface "$adapterName" disable
启用IPv6的脚本(命名为Enable-IPv6.ps1)
$adapterName = "Wi-Fi" netsh interface ipv6 set interface "$adapterName" enable
把这两个脚本保存到你好找的地方,比如C:\Scripts\文件夹里。
步骤2:创建任务计划触发脚本
接下来要让Windows在连接到特定Wi-Fi时自动运行禁用脚本,断开时运行启用脚本:
- 打开任务计划程序(可以在开始菜单搜索直接打开)
- 点击左侧的「创建任务」,给任务起个名字,比如“连接家用VPN Wi-Fi时禁用IPv6”
- 切换到「触发器」标签,点击「新建」:
- 在「开始任务」下拉选「当特定事件被记录时」
- 日志选「系统」,来源选「Microsoft-Windows-NetworkProfile」,事件ID填
10000(这个事件代表网络连接成功) - 点击「条件」,添加事件筛选器:在XML标签里勾选「手动编辑查询过滤器」,粘贴下面的内容(把
"你的家用VPN路由器Wi-Fi名称"改成你实际的SSID):<QueryList> <Query Id="0" Path="System"> <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-NetworkProfile'] and EventID=10000]] and *[EventData[Data='你的家用VPN路由器Wi-Fi名称']]</Select> </Query> </QueryList> - 确定保存这个触发器
- 切换到「操作」标签,点击「新建」:
- 操作选「启动程序」,程序或脚本填
powershell.exe,添加参数填-ExecutionPolicy Bypass -File "C:\Scripts\Disable-IPv6.ps1"(路径改成你实际保存脚本的位置)
- 操作选「启动程序」,程序或脚本填
- 同理,再创建一个任务,名字比如“断开家用VPN Wi-Fi时启用IPv6”:
- 触发器的事件ID改成
10001(代表网络断开),XML里同样指定你的Wi-Fi名称 - 操作里调用
Enable-IPv6.ps1脚本
- 触发器的事件ID改成
- 最后记得把任务的安全选项设置为「不管用户是否登录都要运行」,这样就算你用不同账号登录也能生效。
方法二:手动设置特定Wi-Fi的IPv6属性
如果你不想搞脚本,也可以手动给特定Wi-Fi单独禁用IPv6,这个方法只有在你连接该网络时才会生效,其他网络不受影响:
- 右键任务栏的网络图标,选「打开网络和Internet设置」
- 点击「Wi-Fi」,然后选「管理已知网络」
- 找到你家用VPN路由器的Wi-Fi名称,点击「属性」
- 在弹出的窗口里,找到「IP设置」部分,点击「编辑」
- 把IP分配方式改成「手动」,然后把IPv6的开关关掉,保存设置
这样下次你连接这个Wi-Fi时,系统就会自动禁用IPv6,连接其他Wi-Fi时还是正常使用IPv6。
备注:内容来源于stack exchange,提问作者IT gone wild




