English | 中文
一个用于 Windows 的 PowerShell 脚本,快速在多套 IPv4 配置之间切换,并与指定网卡绑定,支持自动 UAC 提升。
- 动作:
add | switch | list | show | remove | rename | export | import | dhcp - 绑定策略:优先使用
InterfaceGuid,通过InterfaceAlias添加时自动解析并保存 GUID,避免网卡重命名导致失效 - 安全切换:跳过移除 169.254.* 链路本地地址;网关通过路由规范化避免 DefaultGateway already exists 错误
- 支持描述
Description与标签Tags(逗号分隔) - 配置持久化:同目录
profiles.json - 自动管理员提升(UAC)针对需要权限的动作:
switch,dhcp - 仅使用 Windows 原生命令,不依赖第三方模块
以管理员方式打开 PowerShell,进入脚本所在目录:
Set-ExecutionPolicy -Scope Process RemoteSigned
cd <脚本目录>./IPSwitch.ps1
# 菜单:新增 / 切换 / 查看列表 / 查看详情 / 删除 / 重命名 / 导出 / 导入 / DHCP / 网卡概要 / 退出添加一个配置:
./IPSwitch.ps1 -Action add -Name Office -InterfaceAlias "Ethernet" -IPv4 192.168.1.50 -Mask 255.255.255.0 -Gateway 192.168.1.1 -Dns "8.8.8.8,1.1.1.1" -Description "公司内网" -Tags "office,prod"切换到配置:
./IPSwitch.ps1 -Action switch -Name Office切换指定网卡为 DHCP:
# 通过配置名称(绑定网卡)
./IPSwitch.ps1 -Action dhcp -Name Office
# 或直接指定别名
./IPSwitch.ps1 -Action dhcp -InterfaceAlias "Ethernet"执行会修改网络的动作(switch, dhcp)需要管理员权限。若当前会话不是管理员,脚本会尝试使用 UAC 弹窗自动提升并以相同参数重新运行:
./IPSwitch.ps1 -Action switch -Name Office # 非管理员时会自动弹出 UAC 提示如果自动提升失败,请手动以“以管理员身份运行”重新打开 PowerShell,再执行命令。
查看现有配置:
./IPSwitch.ps1 -Action list
./IPSwitch.ps1 -Action show -Name Office删除或重命名:
./IPSwitch.ps1 -Action remove -Name Office
./IPSwitch.ps1 -Action rename -Name Office -NewName OfficeLAN# 导出到 profiles-export.json
./IPSwitch.ps1 -Action export
# 从指定文件导入(使用 -PathOverride 指定源文件)
./IPSwitch.ps1 -Action import -PathOverride .\my-profiles.json- 切换时移除目标网卡已存在的非链路本地 IPv4(跳过 169.254.*),再写入新地址、路由和 DNS。
Mask使用点分十进制,内部转换为 PrefixLength。- DNS 支持多个地址,逗号分隔。
Description可选;Tags逗号分隔,列表显示聚合。- 通过
-InterfaceAlias添加时自动解析并保存InterfaceGuid,确保配置与物理网卡强绑定。
- 需要管理员权限:右键 PowerShell 以管理员身份运行。
- 提示找不到网卡:确认网卡存在且未被禁用,或硬件未更换导致 GUID 变化。
- 执行策略受限:使用上方
Set-ExecutionPolicy -Scope Process RemoteSigned在当前会话放宽。
可加 -Verbose 查看内部处理信息,例如:
./IPSwitch.ps1 -Action import -PathOverride .\profiles.json -VerboseMIT © 2025. 详见 LICENSE 文件,可自由使用、修改与分发。
欢迎提交 Issue 请求:IPv6 支持、标签过滤、双语动态切换(-Lang)或其他改进建议。