PowerShell 脚本在 Windows 操作系统中同时连接外网和内网

发布时间 2023-07-12 22:24:46作者: suv789

要使用 PowerShell 设置允许同时连接内外网的组策略,可以使用以下脚本:

powershell

设置允许同时连接内外网的组策略

Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WcmSvc\GroupPolicy" -Name "fSoftDisconnectConnections" -Value 0
此脚本将会在注册表中设置 HKLM\SOFTWARE\Policies\Microsoft\Windows\WcmSvc\GroupPolicy 下的 fSoftDisconnectConnections 值为 0,表示允许同时连接内外网。

请注意以管理员权限运行 PowerShell 脚本。这将确保你具备足够的权限来修改注册表项。

要通过 PowerShell 脚本在 Windows 操作系统中同时连接外网和内网,可以使用以下脚本:

powershell

获取内网网卡的接口索引

$internalInterfaceIndex = Get-NetAdapter | Where-Object { $_.InterfaceAlias -eq "<内网网卡别名>" } | Select-Object -ExpandProperty ifIndex

获取外网网卡的默认网关

$externalGateway = (Get-NetIPConfiguration | Where-Object { $_.InterfaceAlias -eq "<外网网卡别名>" }).IPv4DefaultGateway

清除默认路由

Clear-NetRoute -DestinationPrefix 0.0.0.0/0 -InterfaceIndex $internalInterfaceIndex -Confirm:$false

添加外网网卡的默认路由

New-NetRoute -DestinationPrefix 0.0.0.0/0 -NextHop $externalGateway -InterfaceIndex $externalInterfaceIndex

设置内网网卡优先级为最高

Set-NetIPInterface -InterfaceIndex $internalInterfaceIndex -InterfaceMetric 1
请将 <内网网卡别名> 和 <外网网卡别名> 替换为实际的内网网卡和外网网卡的别名。可以使用 Get-NetAdapter 命令查看所有可用的网卡别名。

运行以上 PowerShell 脚本后,Windows 操作系统将会同时连接外网和内网。脚本会清除默认路由,并添加外网网卡的默认路由。另外,还会将内网网卡的优先级设置为最高,以确保流量优先通过内网网卡。

请注意,以管理员权限运行 PowerShell 脚本。同时,注意替换为实际的网卡别名,并根据需要进行适当的调整。


通过批处理脚本实现在 Windows 操作系统中同时连接外网和内网,你可以使用以下脚本:

Copy Code
@echo off

REM 启用同时连接内外网功能
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WcmSvc\GroupPolicy" /v fSoftDisconnectConnections /t REG_DWORD /d 0 /f

REM 清除默认网关
route delete 0.0.0.0

REM 添加外网网卡的默认网关
route add 0.0.0.0 mask 0.0.0.0 <外网网卡的默认网关IP>

REM 刷新组策略
gpupdate /force
请将 <外网网卡的默认网关IP> 替换为外网网卡的默认网关的实际 IP 地址。请以管理员权限运行此批处理脚本。

脚本将使用注册表设置启用同时连接内外网功能,并清除默认网关,然后添加外网网卡的默认网关作为新的默认路由。最后,使用 gpupdate /force 命令刷新组策略以使更改生效。

执行以上脚本后,Windows 操作系统将同时连接外网和内网,并根据添加的默认网关路由来实现流量的正确转发。