快速业务通道

利用vbs自动修改ip的代码

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
单位机房的系统需要重新安装,一共近300台设备,使用ghost网络克隆后,客户机重新设置ip是个麻烦的事情。我们使用的教学管理软件要求客户机必须有固定ip,单位5个机房如下(DNS:61.134.1.4,掩码为:255.255.255.0):

机房

起始ip

ip终止ip

网关

机器名

工作组

1号192.168.1.1100254No_100~No_160S01
2号192.168.1.101200254No_200~No_260S02
3号192.168.3.180254No_300~No_360S03
4号192.168.3.81160254No_400~No_460S04
5号192.168.3.161240254No_500~No_560S05

以下为vbs源码:
1.xp系统(测试通过,用户为Administrator,文件为E:\fxp.vbs,启动组建立快捷方式fxp.lnk以便开机后自动运行一次)
复制代码 代码如下:

''/////主程序
dimmsginf,machname''定义变量:对话框,机器名
msginf=msgbox("该程序只能执行1次,请在XP系统硬件安装完毕后执行!"&chr(13)&"是否继续?",65,"修改机器网络配置")''信息提示
ifmsginf=1then''如果按确定,则

machname=inputon()''用函数inputon()分析

ifmachname<>"quit"then''如果返回值不等于"quit",则
wmitoip(machname)''运行函数wmitoip()设置机器信息
mreboot()''重启机器
endif
endif

''///重启机器
submreboot()
dimfso,f1,f2
Setfso=CreateObject("Scripting.FileSystemObject")

''删除启动组
iffso.fileexists("C:\DocumentsandSettings\Administrator\「开始」菜单\程序\启动\fxp.lnk")then
setf1=fso.getfile("C:\DocumentsandSettings\Administrator\「开始」菜单\程序\启动\fxp.lnk")
f1.delete
endif

''删除vbs文件
iffso.fileexists("e:\fxp.vbs")then
setf2=fso.getfile("e:\fxp.vbs")
f2.delete
endif

SetWshShell=Wscript.CreateObject("Wscript.Shell")
''WshShell.Run("shutdown.exe-r-t5")''重启

endsub

''///生成计算机名
functioninputon()''函数inputon()
dimt''变量
whiletrue''循环直到退出函数
t=inputbox("按一下规则输入:"&chr(13)&chr(13)&"第1位代表机房号"&chr(13)&"第2、3位代表机器号"&chr(13)&"教师机用00代表"&chr(13)&"如:123代表1号机房23号机"&chr(13)&"请确保输入正确!!","请输入3位机器标识!","")''输入机算机名,默认值为空
ift=""then''如果t等于空(按了取消键),则
inputon="quit"''返回值为"quit"
exitfunction''退出程序
endif
iflen(t)=3then''计算机号的长度为3位
ifCint(t)>=100andCint(t)<580then''验证
inputon=t''返回需要的计算机名
exitfunction
endif
endif
wend
endfunction


''///修改机器ip、掩码、网关、工作组、机器名
subwmitoip(t)
strComputer="."
strmask="255.255.255.0"
Dimlt,rt''变量
dimipv,gateway,lan''ip,网关,工作组
lt=cint(left(t,1))''机号左1位数字值
rt=cint(right(t,2))''机号右两位数字值

iflt=1orlt=2then''判断网关
gateway="192.168.1.254"
else
gateway="192.168.3.254"
endif

iflt=1then''1号机房
lan="S01"
ipv="192.168.1."
ifrt=0then''教师机
ipv=ipv+"100"
else''学生机
ipv=ipv+Cstr(rt)
endif
endif

iflt=2then''2号机房
lan="S02"
ipv="192.168.1."
ifrt=0then''教师机
ipv=ipv+"200"
else''学生机
rt=rt+100
ipv=ipv+Cstr(rt)
endif
endif

iflt=3then''3号机房
lan="S03"
ipv="192.168.3."
ifrt=0then''教师机
ipv=ipv+"80"
else''学生机
ipv=ipv+Cstr(rt)
endif
endif

iflt=4then''4号机房
lan="S04"
ipv="192.168.3."
ifrt=0then''教师机
ipv=ipv+"160"
else''学生机
rt=rt+80
ipv=ipv+Cstr(rt)
endif
endif

iflt=5then''5号机房
lan="S05"
ipv="192.168.3."
ifrt=0then''教师机
ipv=ipv+"240"
else''学生机
rt=rt+160
ipv=ipv+Cstr(rt)
endif
endif

SetobjWMIService=GetObject("winmgmts:\\"&strComputer&"\root\cimv2")
SetcolNetAdapters=objWMIService.ExecQuery("Select*fromWin32_NetworkAdapterConfigurationwhereIPEnabled=TRUE")
strIPAddress=Array(ipv)
strSubnetMask=Array(strmask)
strGateway=Array(gateway)''修改网关
''strGatewayMetric=Array(1)''跃点数
strDNS=Array("61.134.1.4")

ForEachobjNetAdapterincolNetAdapters
errEnable=objNetAdapter.EnableStatic(strIPAddress,strSubnetMask)''ip,掩码
errGateways=objNetAdapter.SetGateways(strGateway)''网关
errDns=objNetAdapter.SetDNSServerSearchOrder(strDNS)''dns
Next

SetobjWMIService=GetObject("winmgmts:"_
&"{impersonationLevel=impersonate}!\\"&strComputer&"\root\cimv2")
SetcolComputers=objWMIService.ExecQuery_
("Select*fromWin32_ComputerSystem")
ForEachobjComputerincolComputers
err=ObjComputer.Rename("No_"&t)''机器名
ReturnValue=objComputer.JoinDomainOrWorkGroup("S0"&left(t,1))''工作组
Next

endsub



2

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号