davidwu 2012-04-10
因为公司有同事负责大连、沈阳两个城市,经常在两地来回走动,到每个城市后,都要自己手动更改相应的网络配置,况且到外地时住的是酒店, 酒店上网是自动获得IP,又要将网络设置取消,真的很麻烦!于是想起写一个批处理!来解决这个问题!主要用到的命令是netsh.
-、第一种方法是将两地的网络配置先进行本机设置,然后再导出,等用到的时候,再分别导入。
1、将现有的配置导出到d:\dalian.txt中:
netsh Cc interface dump > d:\dalian.txt
2、将之前导出的d:\dalian.txt文件进行导入:
netsh -f d:\dalian.txt
这种方法在执行时有点慢,不如下面的方法。
二、第二种方法
语法格式:
1、设置IP、网关
netsh interface ip set address name="本地连接" static 要设置的IP地址 子网掩码 网关IP 网关跃数
2、设置主DNS、WINS
netsh interface ip set dns/wins name="本地连接" static 要设置的DNS地址 register=PRIMARY
2、设置备用DNS、WINS
netsh interface ip add dns/wins name="本地连接" 要设置的DNS地址 index=2
具体配置如下:
1、酒店.bat
代码如下:
@echo off echo 取消指定网络配置,请稍等…. echo. echo 正在设置自动获取IP地址,请稍等…… netsh interface ip set address name="本地连接" source=dhcp echo 正在设置自动获取DNS,请稍等…… netsh interface ip set dns name="本地连接" source=dhcp echo 设置完成!
代码如下:
@echo off echo 开始设置大连网络地址! echo 正在设置大连IP ,请稍等…… netsh interface ip set address name="本地连接" source=static addr=10.15.100.86 mask=255.255.0.0 echo 正在设置大连网关,请稍等…… netsh interface ip set address name="本地连接" gateway=10.15.0.253 gwmetric=1 echo 正在设置大连主DNS ,请稍等…… netsh interface ip set dns name="本地连接" source=static addr=10.15.0.1 register=PRIMARY echo 正在设置大连备用DNS ,请稍等…… netsh interface ip add dns name="本地连接" addr=10.100.1.2 index=2 echo 正在设置大连主WINS ,请稍等…… netsh interface ip set wins name="本地连接" source=static addr=10.15.0.1 echo 正在设置大连备用WINS ,请稍等…… netsh interface ip add wins name="本地连接" addr=10.100.1.2 index=2 echo 设置完成!
代码如下:
@echo off echo 开始设置沈阳网络地址! echo 正在设置沈阳IP ,请稍等…… netsh interface ip set address name="本地连接" source=static addr=10.16.100.86 mask=255.255.0.0 echo 正在设置沈阳网关,请稍等…… netsh interface ip set address name="本地连接" gateway=10.16.0.253 gwmetric=1 echo 正在设置沈阳主DNS ,请稍等…… netsh interface ip set dns name="本地连接" source=static addr=10.16.0.1 register=PRIMARY echo 正在设置沈阳备用DNS ,请稍等…… netsh interface ip add dns name="本地连接" addr=10.100.1.2 index=2 echo 正在设置沈阳主WINS ,请稍等…… netsh interface ip set wins name="本地连接" source=static addr=10.16.0.1 echo 正在设置沈阳备用WINS ,请稍等…… netsh interface ip add wins name="本地连接" addr=10.100.1.2 index=2 echo 设置完成!
代码如下:
@ echo off rem 设置变量 set Nic=本地连接 rem //可以根据你的需要更改, set Addr=10.15.100.86 set Mask=255.255.0.0 set Gway=10.15.0.253 set Dns1=10.15.0.1 set Dns2=10.100.1.2 set Wins1=10.15.0.1 set Wins2=10.100.1.2 rem //以上依次为IP地址、子网掩码、网关、首选DNS、备用DNS、首选WINS、备用WINS echo ------------------------------------------------------ echo 正在进行大连IP设置,请稍等 rem //可以根据你的需要更改 echo. IP地址 = %Addr% echo. 子网掩码 = %Mask% netsh interface ip set address name=%Nic% source=static addr=%Addr% mask=%Mask% >nul echo. 网关 = %Gway% netsh interface ip set address name=%Nic% gateway=%Gway% gwmetric=1 >nul echo. 首选DNS = %Dns1% netsh interface ip set dns name=%Nic% source=static addr=%Dns1% register=PRIMARY >nul echo. 备用DNS = %Dns2% netsh interface ip add dns name=%Nic% addr=%Dns2% index=2 >nul echo. 首选WINS = %Wins1% netsh interface ip set wins name=%Nic% source=static addr=%Wins1% register=PRIMARY >nul echo. 备用WINS = %Wins2% netsh interface ip add wins name=%Nic% addr=%Wins2% index=2 >nul echo ------------------------------------------------------ echo IP设置完成!
代码如下:
@echo off title 自动设置代理服务器 echo 自动设置代理服务器 rem echo 正在清空代理服务器设置…… rem reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f rem reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /d "" /f rem reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyOverride /t REG_SZ /d 0 /f rem echo 代理服务器设置已经清空 echo 正在设置代理服务器…… reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /d "10.15.0.2:3128" /f reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyOverride /t REG_SZ /d "10.*.*.*;192.168.*.*;<local>" /f
代码如下:
cls color 1f @echo 清空代理设置 @echo Windows Registry Editor Version 5.00>>1.reg @echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]>>1.reg @echo "ProxyEnable"=dword:00000000>>1.reg @echo "ProxyServer"="">>1.reg @echo "ProxyOverride"="">>1.reg regedit /s 1.reg del 1.reg @echo 设置代理 @echo Windows Registry Editor Version 5.00>>1.reg @echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]>>1.reg @echo "ProxyEnable"=dword:00000001>>1.reg @echo "ProxyServer"="10.15.0.2:8080">>1.reg @echo "ProxyOverride"="10.*.*.*;192.168.*.*;<local>">>1.reg regedit /s 1.reg del 1.reg
代码如下:
@echo off color 1f title "网卡&IE代理设置批处理" echo 实现功能包括切换大连和沈阳网络配置,设置IE代理. goto 51job :51job echo. echo 请选择: 1:大连,2:沈阳,3:ADSL set /p choice=请输入相应数字后回车: if /i "%choice%" == "1" goto dlnet if /i "%choice%" == "2" goto synet if /i "%choice%" == "3" goto adsl goto 51job :adsl cls color 1f netsh interface ip set address name="本地连接" source=dhcp netsh interface ip set dns name="本地连接" source=dhcp cls goto noproxy :noproxy @echo Windows Registry Editor Version 5.00>>1.reg @echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]>>1.reg @echo "ProxyEnable"=dword:00000000>>1.reg @echo "ProxyServer"="">>1.reg @echo "ProxyOverride"="">>1.reg regedit /s 1.reg del 1.reg goto exit :dlnet cls color 1f echo. set /p choice=输入" N "后回车跳过网卡设置, 直接回车继续网卡设置: if /i "%choice%" == "N" goto proxy cls echo 开始设置大连网络地址! echo 正在设置大连IP ,请稍等…… netsh interface ip set address name="本地连接" source=static addr=10.15.100.86 mask=255.255.0.0 echo 正在设置大连网关,请稍等…… netsh interface ip set address name="本地连接" gateway=10.15.0.253 gwmetric=1 echo 正在设置大连主DNS ,请稍等…… netsh interface ip set dns name="本地连接" source=static addr=10.15.0.1 register=PRIMARY echo 正在设置大连备用DNS ,请稍等…… netsh interface ip add dns name="本地连接" addr=10.100.1.2 index=2 echo 正在设置大连主WINS ,请稍等…… netsh interface ip set wins name="本地连接" source=static addr=10.15.0.1 echo 正在设置大连备用WINS ,请稍等…… netsh interface ip add wins name="本地连接" addr=10.100.1.2 index=2 echo 设置完成! echo 正在刷新设置…… ipconfig /flushdns echo 显示新的设置: ipconfig /all goto dlproxy :dlproxy cls color 1f @echo Windows Registry Editor Version 5.00>>1.reg @echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]>>1.reg @echo "ProxyEnable"=dword:00000001>>1.reg @echo "ProxyServer"="10.15.0.2:8080">>1.reg @echo "ProxyOverride"="10.*.*.*;192.168.*.*;<local>">>1.reg regedit /s 1.reg del 1.reg echo 正在关闭浏览器: taskkill /f /t /im IEXPLORE.exe echo 正在开启浏览器 "C:\Program Files\Internet Explorer\IEXPLORE.EXE" goto exit :synet cls color 1f echo. set /p choice=输入" N "后回车跳过网卡设置, 直接回车继续网卡设置: if /i "%choice%" == "N" goto proxy cls echo 开始设置沈阳网络地址! echo 正在设置沈阳IP ,请稍等…… netsh interface ip set address name="本地连接" source=static addr=10.16.100.86 mask=255.255.0.0 echo 正在设置沈阳网关,请稍等…… netsh interface ip set address name="本地连接" gateway=10.16.0.253 gwmetric=1 echo 正在设置沈阳主DNS ,请稍等…… netsh interface ip set dns name="本地连接" source=static addr=10.16.0.1 register=PRIMARY echo 正在设置沈阳备用DNS ,请稍等…… netsh interface ip add dns name="本地连接" addr=10.100.1.2 index=2 echo 正在设置沈阳主WINS ,请稍等…… netsh interface ip set wins name="本地连接" source=static addr=10.16.0.1 echo 正在设置沈阳备用WINS ,请稍等…… netsh interface ip add wins name="本地连接" addr=10.100.1.2 index=2 echo 设置完成! goto syproxy :syproxy cls color 1f @echo Windows Registry Editor Version 5.00>>1.reg @echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]>>1.reg @echo "ProxyEnable"=dword:00000001>>1.reg @echo "ProxyServer"="10.16.0.2:8080">>1.reg @echo "ProxyOverride"="10.*.*.*;192.168.*.*;<local>">>1.reg regedit /s 1.reg del 1.reg echo 正在关闭浏览器: taskkill /f /t /im IEXPLORE.exe echo 正在开启浏览器 "C:\Program Files\Internet Explorer\IEXPLORE.EXE" goto exit :exit cls echo. echo. echo. echo. echo. echo. echo. echo. echo 已完成所有设置. echo. echo echo. echo. echo. echo. echo. echo. echo. echo. echo. pause exit
代码如下:
on error resume next strIPAddress = array("10.15.100.86") strSubnetMask = array("255.255.0.0") strGateway = array("10.15.0.253") strGatewayMetric = array("1") strwinsOne = "10.15.0.1" strwinsTwo = "10.100.1.2" strdnsOne = "10.15.0.1" strdnsTwo = "10.100.1.2" strComputer = "." Set objShell = CreateObject("Wscript.shell") Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNetCards = objWMIService.ExecQuery _ ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True") wscript.echo "正在进行大连网络配置" For Each objNetCard in colNetCards errEnable = objNetCard.EnableStatic(strIPAddress,strSubnetMask) errGateways = objNetCard.SetGateways(strGateway,strGatewayMetric) arrDNSServers = Array(strdnsone, strdnstwo) objNetCard.SetDNSServerSearchOrder(arrDNSServers) SetWins = objNetCard.SetWINSServer(strwinsOne,strwinsTwo) Next wscript.echo "大连网络配置完成!"
代码如下:
strMachines = "10.15.0.2:3128;10.16.0.2:3128" aMachines = split(strMachines, ";") For Each machine2 in aMachines machinearr = split(machine2, ":") machine = machinearr(0) Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._ ExecQuery("select * from Win32_PingStatus where address = '"_ & machine & "'") For Each objStatus in objPing If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then WScript.Echo(machine2 & " is not reachable") else WScript.Echo(machine2 & " is OK") if confirm("设置代理为"& machine2 &"?") then msgbox SetIEProxy(1,machine2) end if End If Next Next function confirm(s) confirm = (msgbox(s,vbYesNo,s) = 6) end function Function SetIEProxy(ProxyEnable,ProxyIP) On Error Resume Next Const HKEY_CURRENT_USER = &H80000001 strComputer = "." Set objReg = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}\\" & strComputer & _ "\root\default:StdRegProv") strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\" strEntryName = "ProxyEnable" dwvalue = ProxyEnable objReg.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strEntryName,dwValue strEntryName = "ProxyServer" dwvalue = ProxyIP objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, strEntryName,dwValue strEntryName = "ProxyOverride" dwvalue = "10.*.*.*;192.168.*.*;<local>" objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, strEntryName,dwValue If Err = 0 Then SetIEProxy = True Else SetIEProxy = False End If End Function msgbox "ok"