[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 请教在多网卡的服务器里对其中一个插网线的网卡配置指定公网IP的批处理写法

请教在多网卡的服务器里对其中一个插网线的网卡配置指定公网IP的批处理写法(需要设置的IP直接写在bat中)

请教各位兄弟一个问题,我想搞一个批处理文件能自动设置服务器(电脑)中插了网线的网卡的IP,比如说服务器有4个网卡其中只有一个网卡或2个网卡是插了网线,只需要对其中一个插了网线的网卡自动设置IP(网关和子网掩码、DNS)。IP(网关和子网掩码,DNS)直接写到批处理文件中,不需要在执行批处理文件的时候手动输入任何信息(IP\网\子网掩码\DNS)。

需要这样做是因为机房的服务器有多个网卡,有时候其中一个网卡插了网线或是2个网卡插了网线,如果是2个或以上网卡插了网线,也只用对其中一个插了网线的网卡设置IP就可以了。如果能实现对其中一个插了网线的网卡配置IP(需要判断哪些网卡插了网线,并过滤掉没插网线的网卡),我就可以封装一个自己常用的系统(如WIN2012R2,将批处理文件打包到GHO文件中去,并设置自动任务登陆时自动执行,达到对插了网线的网卡自动设置公网IP的目的),这样对服务器安装新系统我不需要去机房现场操作,只用远程登陆原服务器GHOST还原新封装的系统,就可以对服务器插了网线的网卡自动设置我自己想要的公网IP,服务器就可以直接连通网络了。

谢谢各位了
服务器租用 http://www.piis.pw

有的服务器是1个网卡 有的服务器是2个网卡 有的服务器是4个网卡 可能只有一个网卡插了网线 也有可能是2个网卡插了网线 只用对其中一个插了网线的网卡设置IP就可以了
网卡名称可能是 本地连接 “本地连接 2” “以太网” “以太网 2”… 或许是其他名称
服务器租用 http://www.piis.pw

TOP

本帖最后由 flashercs 于 2020-4-2 10:19 编辑
  1. @echo off
  2. REM 新IP地址/前缀
  3. set "newip=192.168.0.33"
  4. REM 设置子网掩码
  5. set "netmask=255.255.255.0"
  6. REM 设置网关
  7. set "gateway=192.168.0.254"
  8. REM 设置DNS Sever1
  9. set "dnsserver1=114.114.114.114"
  10. REM 设置DNS Sever2
  11. set "dnsserver2=202.102.152.3"
  12. for /f "tokens=*" %%A in ('wmic nic where "NetEnabled='TRUE'" get NetConnectionID /value^|find "="') do set %%A
  13. echo.NetConnectionID="%NetConnectionID%"
  14. REM 设置IP
  15. echo.开始设置IP...
  16. netsh interface ipv4 set address "%NetConnectionID%" static "%newip%" "%netmask%" "%gateway%"
  17. echo.设置IP完成
  18. REM 设置DNS
  19. echo.开始设置DNS1...
  20. netsh interface ipv4 set dnsservers "%NetConnectionID%" static "%dnsserver1%"
  21. echo.设置DNS1完成
  22. echo.开始设置DNS2...
  23. netsh interface ipv4 add dnsservers "%NetConnectionID%" "%dnsserver2%" 2
  24. echo.设置DNS2完成
  25. exit /b
复制代码
微信:flashercs
QQ:49908356

TOP

自己研究了下,通过判断NetEnabled=TRUE这个不通用,在WIN2012R2和WIN2016系统中并没有这个值。
改为判断NetConnectionStatus=2
  1. @echo off
  2. set "newip=192.168.16.139"
  3. set "netmask=255.255.255.0"
  4. set "gateway=192.168.16.1"
  5. set "dnsserver1=8.8.8.8"
  6. set "dnsserver2=8.8.4.4"
  7. for /f "tokens=*" %%A in ('wmic nic where "NetConnectionStatus='2'" get NetConnectionID /value^|find "="') do set %%A
  8. echo NetConnectionID="%NetConnectionID%"
  9. echo 开始设置IP...
  10. netsh interface ip set address name="%NetConnectionID%" static "%newip%" "%netmask%" "%gateway%" 0
  11. echo 设置IP完成
  12. echo 开始设置DNS1...
  13. netsh interface ip set dns name="%NetConnectionID%" static "%dnsserver1%" primary
  14. echo 设置DNS1完成
  15. echo 开始设置DNS2...
  16. netsh interface ip add dns name="%NetConnectionID%" "%dnsserver2%" index=2
  17. echo 设置DNS2完成
  18. for /f "tokens=*" %%A in ('wmic nic where "NetConnectionID='%NetConnectionID%'" get index  /value^|find "="') do set %%A
  19. echo index="%index%"
  20. wmic nicconfig where index="%index%" call SetTcpipNetbios 2
  21. del %0
  22. exit /b
复制代码
服务器租用 http://www.piis.pw

TOP

后面发现一个问题,有的服务器netsh interface ip 不生效,可能是服务器做有优化或一些权限设置引起的,改为如下批处理:
  1. @echo off
  2. set "newip=192.168.16.139"
  3. set "netmask=255.255.255.0"
  4. set "gateway=192.168.16.1"
  5. set "dns1=8.8.8.8"
  6. set "dns2=8.8.4.4"
  7. for /f "tokens=*" %%A in ('wmic nic where "NetConnectionStatus='2'" get NetConnectionID /value^|find "="') do set %%A
  8. echo NetConnectionID="%NetConnectionID%"
  9. for /f "tokens=*" %%A in ('wmic nic where "NetConnectionID='%NetConnectionID%'" get index  /value^|find "="') do set %%A
  10. echo index="%index%"
  11. wmic nicconfig where index="%index%" call enablestatic("%newip%"),("%netmask%")
  12. wmic nicconfig where index="%index%" call setgateways("%gateway%"),(1)
  13. wmic nicconfig where index="%index%" call SetDNSServerSearchOrder("%dns1%","%dns2%")
  14. wmic nicconfig where index="%index%" call SetTcpipNetbios 2
  15. exit /b
复制代码
服务器租用 http://www.piis.pw

TOP

返回列表