Json 格式如下
{
Version:"v1.0",
Auther:"jsd",
host:[
{action:"-",listenport:"33890",listenaddress:"0.0.0.0",connectport:"3389",connectaddress:"192.168.172.128"},
{action:"-",listenport:"8080",listenaddress:"0.0.0.0",connectport:"80",connectaddress:"192.168.172.130"},
{action:"-",listenport:"33892",listenaddress:"0.0.0.0",connectport:"3389",connectaddress:"192.168.172.145"},
{action:"-",listenport:"33893",listenaddress:"0.0.0.0",connectport:"3389",connectaddress:"192.168.172.145"},
{action:"-",listenport:"18888",listenaddress:"0.0.0.0",connectport:"192.168.172.143",connectaddress:"3389"}
]
}
powershell 脚本实现
function configPortProxy (){
$configPath = "C:\Users\dongwu_test\Documents\config\portproxy.config"
$portProxyList = (Get-Content $configPath) | ConvertFrom-Json
foreach ($item in $portProxyList.host) {
$ladd = $item.listenaddress;
$lp = $item.listenport;
$cadd = $item.connectaddress;
$cp = $item.connectport;
if ($item.action -eq "-") {
continue;
}
if ($item.action -eq "add") {
netsh interface portproxy add v4tov4 listenaddress=$ladd listenport=$lp connectaddress=$cadd connectport=$cp
}
if ($item.action -eq "del") {
netsh interface portproxy delete v4tov4 listenaddress=$ladd listenport=$lp
}
if ($item.action -eq "update") {
netsh interface portproxy add v4tov4 listenaddress=$ladd listenport=$lp connectaddress=$cadd connectport=$cp
}
}
netsh interface portproxy show all
Write-Output "config is Complete"
}
configPortProxy