DOS批处理设置(修改)IP、wins、计算机名及工作组名由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“批处理修改计算机名”。
DOS批处理设置(修改)IP、wins、计算机名及工作组名 2009-03-18 13:35 单位电脑几百台,新增电脑、维修重装系统、拆东墙补西墙等等的事,单位电脑维修人员屡做屡厌,又非做不可,总冇找到最好的办法解决ip地址、局域网共享等的方法,总也免不了手工设置。这不,设ip、工作组的事也是天天有的做。被问有冇得简单、直接点的法子?于是在网上收集了哈子,整理了个适合社会主义本单位特色的小工具。不是为了摆哈子,实为防止日后遗失,再有用得着的;再或许更多人有值得借鉴的也说不准。
单位楼栋、楼层、科室网段分布较多,各段间不能相互访问,但可访问中心指定电脑;各科电脑内部可彼此访问。因此,维修人员将系统按机型备好,临时按需改ip、计算机名及工作组名。这两道工序之外,还有一套一套的应用系统环境,也不是一成不变的;且科室不同,环境要求不同。哎,不说了,蛮遭孽的!饿就按要求整了。
@echo off cls color 0a echo.echo #-----------------------echo 功能:IP地址及计算机名快速设置 echo 说明:供单位电脑维护人员使用
echo #-----------------------rem 当前及默认设置
for /f “tokens=15” %%i in('ipconfig /all^|find /i “ip addre”')do set IP=%%i if %IP%.==.set IP=192.168.0.1 set MASK=255.255.255.0 for /f “tokens=1-3 delims=.” %%i in(“%IP%”)do set dmn=%%i.%%j.%%k set GATEWAY=%dmn%.254 set wgname= for /f “tokens=*” %%i in('wmic computersystem get workgroup')do(if not defined wgname(set “wgname=%%i”))set mywins= for /f “tokens=12” %%i in('ipconfig /all^|find /I “Primary WINS Server”')do set mywins=%%i echo %mywins% rem 本单位固定wins服务器地址 set mynewwins=192.168.0.100 rem 暂不需设dns rem set DNS1= rem set DNS2= goto BEGIN :BEGIN echo.echo 请输入以下操作选项序号并回车: echo1、使用方法,2、显示当前设置,3、手动交互设置,4、退出 set KEY=1 set /p KEY=请输入:
if %KEY% == 1 goto USAGE if %KEY% == 2 goto CURRE if %KEY% == 3 goto MANUAL goto END :USAGE cls echo.echo 使用方法:
echo #---------------------echo1、网卡必需启用,网络连接中默认为“本地连接”;
echo2、手动设置将一步一步要求你输入楼栋、楼层、科室拼音简码 echo 以及 ip、网关、dns等,并自动按此设置
echo 其中计算机名为你输入的楼栋+楼层+科室+ip最后一节数字。echo3、手工设置完毕将自动重启 goto BEGIN :CURRE echo.echo 正在显示当前ip设置.......netsh-c interface ip dump echo.echo 当前计算机名为: %COMPUTERNAME% set wgname= for /f “tokens=*” %%i in('wmic computersystem get workgroup')do(if not defined wgname(set “wgname=%%i”))echo.echo 当前工作组名:%wgname% echo.netsh interface ip show wins goto BEGIN :MANUAL ECHO.ECHO.echo 请输入本机所在楼栋拼音简称(譬如办公楼输入:bgl)set /p Bq=请输入: echo.echo 请输入本机所在楼层(譬如党办在5楼输入:5)set /p Floor=请输入: echo.echo 请输入本机所在科室名简称(譬如党办输入:db,主任办公室后加A,职员办公室后加B;即dba或dbb)set /p Depart=请输入: echo.echo 请输入 IP 地址,本机当前ip为:%IP% set /p IP=请输入:
rem 网关掩码不要求输,自动填
rem set /p MASK= [请输入子网掩码MASK 地址]: rem echo.rem set /p GATEWAY= [请输入网关GATEWAY地址]: rem 暂不要求设 dns rem echo.rem set /p DNS1= [请输入主 DNS地址]: rem echo.rem set /p DNS2= [请输入第二DNS地址]: echo.if %Bq%.==.goto CURRE if %IP%.==.goto CURRE for /f “tokens=1-3 delims=.” %%i in(“%IP%”)do set dmn=%%i.%%j.%%k set GATEWAY=%dmn%.254 for /f “tokens=4 delims=.” %%i in(“%IP%”)do set addr=%%i set computername=%Bq%_%Floor%_%Depart%_%addr% set newwg=%Bq%_%Floor%_%Depart% ECHO 即将生效的 计算机名是 %computername% ECHO 即将生效的 IP 地址是 %IP% ECHO 即将生效的子网掩码 MASK 是 %MASK% ECHO 即将生效的网关GATEWAY地址是 %GATEWAY% ECHO 即将生效的工作组名是 %newwg% ECHO 即将生效的Wins地址是 %mynewwins% rem ECHO 即将生效的 主DNS 地址是 %DNS1% rem ECHO 即将生效的第二DNS地址是 %DNS2% echo.echo 请输入操作选项序号并回车:
echo1、马上更改,2、重新设置,3、退出 set REEN=2 set /p REEN=请输入: if %REEN% == 1 goto DO if %REEN% == 2 goto MANUAL goto END :DO echo.echo 正在更改计算机名请稍后......echo.reg add HKLMSYSTEMCurrentControlSetControlComputerNameActiveComputerName /v ComputerName /t REG_SZ /d %computername% /f > nul reg add HKLMSYSTEMCurrentControlSetControlComputerNameComputerName /v ComputerName /t REG_SZ /d %computername% /f > nul reg add HKLMSYSTEMCurrentControlSetServicesTcpipParameters /v Hostname /t REG_SZ /d %computername% /f > nul reg add HKLMSYSTEMCurrentControlSetServicesTcpipParameters /v “NV Hostname” /t REG_SZ /d %computername% /f > nul echo.echo 正在更改IP请稍后......echo.echo IP地址及子网掩码设置完成netsh interface ip set addre name=“本地连接” source=static addr=%IP% mask=%MASK% echo 网关地址设置完成netsh interface ip set addre name=“本地连接” gateway=%GATEWAY% gwmetric=0 rem echo 主DNS地址设置完成rem netsh interface ip set dns name=“本地连接” source=static addr=%DNS1% register=PRIMARY rem echo 第二DNS地址设置完成 rem netsh interface ip add dns name=“本地连接” addr=%DNS2% index=2 echo 更改工作组:%wgname%为%newwg% wmic computersystem where Name=“%COMPUTERNAME%” call JoinDomainOrWorkgroup Name=“%newwg%” echo 设置wins: %mynewwins% netsh interface ip delete wins “本地连接” all netsh interface ip set wins name=“本地连接” source=static addr=%mynewwins% echo 重启电脑
%systemroot%system32iisreset.exe /reboot /timeout:0 goto END :END echo.echo 退出