利用vbs自动修改ip的代码
利用vbs自动修改ip的代码
发布时间:2016-12-28 来源:查字典编辑
摘要:单位机房的系统需要重新安装,一共近300台设备,使用ghost网络克隆后,客户机重新设置ip是个麻烦的事情。我们使用的教学管理软件要求客户机...

单位机房的系统需要重新安装,一共近300台设备,使用ghost网络克隆后,客户机重新设置ip是个麻烦的事情。我们使用的教学管理软件要求客户机必须有固定ip,单位5个机房如下(DNS:61.134.1.4,掩码为:255.255.255.0):

机房

起始ip

ip终止ip

网关

机器名

工作组

1号 192.168.1.1 100 254 No_100~No_160 S01
2号 192.168.1.101 200 254 No_200~No_260 S02
3号 192.168.3.1 80 254 No_300~No_360 S03
4号 192.168.3.81 160 254 No_400~No_460 S04
5号 192.168.3.161 240 254 No_500~No_560 S05

以下为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:DocumentsandSettingsAdministrator「开始」菜单程序启动fxp.lnk")then

setf1=fso.getfile("C:DocumentsandSettingsAdministrator「开始」菜单程序启动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&"rootcimv2")

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&"rootcimv2")

SetcolComputers=objWMIService.ExecQuery_

("Select*fromWin32_ComputerSystem")

ForEachobjComputerincolComputers

err=ObjComputer.Rename("No_"&t)'机器名

ReturnValue=objComputer.JoinDomainOrWorkGroup("S0"&left(t,1))'工作组

Next

endsub

2.98系统

98系统可以生成ip.reg注册表文件,导入后就可以了,源码如下(主体思路,这次没有98系统,所以未完成,可参考xp系统的改进):

复制代码 代码如下:

'/////主程序

dimmsginf,machname'定义变量:对话框,机器名

msginf=msgbox("生成注册表文件,是否继续?",65,"getreg")'信息提示

ifmsginf=1then'如果按确定,则

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

ifmachname<>"quit"then'如果返回值不等于"quit",则

setreg(machname)'运行函数setreg()生成注册表ip.reg

endif

endif

'///生成计算机名

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

'///生成注册文件

subsetreg(t)'生成注册表,t为机器号

Dimfso,f1,f2,lt,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

Setfso=CreateObject("Scripting.FileSystemObject")

iffso.fileexists("e:ip.reg")then

setf2=fso.getfile("e:ip.reg")

f2.delete

endif'如果存在ip.reg,先删了

setf1=fso.CreateTextFile("e:ip.reg",True)'建立文件ip.cfg

'f1.WriteLine("REGEDIT4")'以下为生成注册表

f1.WriteLine("WindowsRegistryEditorVersion5.00")

f1.WriteBlankLines(1)

f1.WriteLine("[HKEY_LOCAL_MACHINESystemCurrentControlSetControlComputerNameComputerName]")

f1.WriteLine(chr(34)&"ComputerName"&chr(34)&"="&chr(34)&t&chr(34))'计算机名

f1.WriteLine("[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesClassNetTrans000]")

f1.WriteLine(chr(34)&"IPAddress"&chr(34)&"="&chr(34)&ipv&chr(34))'IP

f1.WriteLine("[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesClassNetTrans000]")

f1.WriteLine(chr(34)&"DefaultGateway"&chr(34)&"="&chr(34)&gateway&chr(34))'网关

f1.WriteLine("[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesClassNetTrans000]")

f1.WriteLine(chr(34)&"IPMask"&chr(34)&"="&chr(34)&"255.255.255.0"&chr(34))'子网掩码

f1.WriteLine("[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVNETSUP]")

f1.WriteLine(chr(34)&"Comment"&chr(34)&"="&chr(34)&t&chr(34))'计算机说明

f1.WriteLine("[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVNETSUP]")

f1.WriteLine(chr(34)&"ComputerName"&chr(34)&"="&chr(34)&t&chr(34))'计算机名

f1.WriteLine("[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVNETSUP]")

f1.Writeline(chr(34)&"Workgroup"&chr(34)&"="&chr(34)&lan&chr(34))'工作组

endsub

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新vbs学习
热门vbs学习
脚本专栏子分类