gpt4 book ai didi

利用vbs自动修改ip的代码

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章利用vbs自动修改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以便开机后自动运行一次) 。

复制代码 代码如下

'/////主程序  dim msginf,machname'定义变量:对话框,机器名  msginf=msgbox("该程序只能执行1次,请在XP系统硬件安装完毕后执行!" &chr(13) & "是否继续?",65,"修改机器网络配置") '信息提示  if msginf=1 then ' 如果按确定,则  machname=inputon() ' 用函数inputon()分析  if machname<>"quit" then ' 如果返回值不等于"quit",则  wmitoip(machname) ' 运行函数wmitoip()设置机器信息  mreboot()'重启机器  end if  end if  '///重启机器  sub mreboot()  dim fso,f1,f2  Set fso = CreateObject("Scripting.FileSystemObject")  '删除启动组  if fso.fileexists("C:\Documents and Settings\Administrator\「开始」菜单\程序\启动\fxp.lnk") then  set f1=fso.getfile("C:\Documents and Settings\Administrator\「开始」菜单\程序\启动\fxp.lnk")  f1.delete  end if  '删除vbs文件  if fso.fileexists("e:\fxp.vbs") then  set f2=fso.getfile("e:\fxp.vbs")  f2.delete  end if  Set WshShell = Wscript.CreateObject("Wscript.Shell")  'WshShell.Run ("shutdown.exe -r -t 5") ' 重启  end sub  '///生成计算机名  function inputon() ' 函数inputon()  dim t ' 变量  while true ' 循环直到退出函数  t=inputbox("按一下规则输入:" & chr(13) & chr(13) & "第1位代表机房号" & chr(13) & "第2、3位代表机器号" & chr(13) & "教师机用00代表" & chr(13) & "如:123代表1号机房23号机" & chr(13) & "请确保输入正确!!","请输入3位机器标识!","") ' 输入机算机名,默认值为空  if t="" then ' 如果t等于空(按了取消键),则  inputon="quit" ' 返回值为"quit"  exit function ' 退出程序  end if  if len(t)=3 then ' 计算机号的长度为3位  if Cint(t)>=100 and Cint(t)<580 then ' 验证  inputon=t ' 返回需要的计算机名  exit function  end if  end if  wend  end function  '///修改机器ip、掩码、网关、工作组、机器名  sub wmitoip(t)  strComputer="."  strmask="255.255.255.0"  Dim lt,rt' 变量  dim ipv,gateway,lan 'ip,网关,工作组  lt=cint(left(t,1))'机号左1位数字值  rt=cint(right(t,2)) ' 机号右两位数字值  if lt=1 or lt=2 then'判断网关  gateway="192.168.1.254"  else  gateway="192.168.3.254"  end if  if lt=1 then '1号机房  lan="S01"  ipv="192.168.1."  if rt=0 then '教师机  ipv=ipv+"100"  else'学生机  ipv=ipv+Cstr(rt)  end if  end if  if lt=2 then '2号机房  lan="S02"  ipv="192.168.1."  if rt=0 then '教师机  ipv=ipv+"200"  else'学生机  rt=rt+100  ipv=ipv+Cstr(rt)  end if  end if  if lt=3 then '3号机房  lan="S03"  ipv="192.168.3."  if rt=0 then '教师机  ipv=ipv+"80"  else'学生机  ipv=ipv+Cstr(rt)  end if  end if  if lt=4 then '4号机房  lan="S04"  ipv="192.168.3."  if rt=0 then '教师机  ipv=ipv+"160"  else'学生机  rt=rt+80  ipv=ipv+Cstr(rt)  end if  end if  if lt=5 then '5号机房  lan="S05"  ipv="192.168.3."  if rt=0 then '教师机  ipv=ipv+"240"  else'学生机  rt=rt+160  ipv=ipv+Cstr(rt)  end if  end if  Set objWMIService=GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  Set colNetAdapters=objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")  strIPAddress=Array(ipv)  strSubnetMask=Array(strmask)  strGateway = Array(gateway) '修改网关  'strGatewayMetric = Array(1) '跃点数  strDNS=Array("61.134.1.4")  For Each objNetAdapter in colNetAdapters   errEnable=objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)'ip,掩码  errGateways = objNetAdapter.SetGateways(strGateway) '网关  errDns=objNetAdapter.SetDNSServerSearchOrder(strDNS)'dns  Next  Set objWMIService = GetObject("winmgmts:" _      & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  Set colComputers = objWMIService.ExecQuery _      ("Select * from Win32_ComputerSystem")  For Each objComputer in colComputers      err = ObjComputer.Rename("No_" & t)'机器名      ReturnValue = objComputer.JoinDomainOrWorkGroup("S0" & left(t,1))'工作组    Next  end sub  。

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

复制代码 代码如下

'/////主程序  dim msginf,machname'定义变量:对话框,机器名  msginf=msgbox("生成注册表文件,是否继续?",65,"getreg") '信息提示  if msginf=1 then ' 如果按确定,则  machname=inputon() ' 用函数inputon()分析  if machname<>"quit" then ' 如果返回值不等于"quit",则  setreg(machname) ' 运行函数setreg()生成注册表ip.reg  end if  end if  '///生成计算机名  function inputon() ' 函数inputon()  dim t ' 变量  while true ' 循环直到退出函数  t=inputbox("按一下规则输入:" & chr(13) & chr(13) & "第1位代表机房号" & chr(13) & "第2、3位代表机器号" & chr(13) & "教师机用00代表" & chr(13) & "如:123代表1号机房23号机" & chr(13) & "请确保输入正确!!","请输入3位机器标识!","") ' 输入机算机名,默认值为空  if t="" then ' 如果t等于空(按了取消键),则  inputon="quit" ' 返回值为"quit"  exit function ' 退出程序  end if  if len(t)=3 then ' 计算机号的长度为3位  if Cint(t)>=100 and Cint(t)<580 then ' 验证  inputon=t ' 返回需要的计算机名  exit function  end if  end if  wend  end function  '///生成注册文件  sub setreg(t) ' 生成注册表,t为机器号  Dim fso, f1,f2,lt,rt' 变量  dim ipv,gateway,lan 'ip,网关,工作组  lt=cint(left(t,1))'机号左1位数字值  rt=cint(right(t,2)) ' 机号右两位数字值  if lt=1 or lt=2 then'判断网关  gateway="192.168.1.254"  else  gateway="192.168.3.254"  end if  if lt=1 then '1号机房  lan="S01"  ipv="192.168.1."  if rt=0 then '教师机  ipv=ipv+"100"  else'学生机  ipv=ipv+Cstr(rt)  end if  end if  if lt=2 then '2号机房  lan="S02"  ipv="192.168.1."  if rt=0 then '教师机  ipv=ipv+"200"  else'学生机  rt=rt+100  ipv=ipv+Cstr(rt)  end if  end if  if lt=3 then '3号机房  lan="S03"  ipv="192.168.3."  if rt=0 then '教师机  ipv=ipv+"80"  else'学生机  ipv=ipv+Cstr(rt)  end if  end if  if lt=4 then '4号机房  lan="S04"  ipv="192.168.3."  if rt=0 then '教师机  ipv=ipv+"160"  else'学生机  rt=rt+80  ipv=ipv+Cstr(rt)  end if  end if  if lt=5 then '5号机房  lan="S05"  ipv="192.168.3."  if rt=0 then '教师机  ipv=ipv+"240"  else'学生机  rt=rt+160  ipv=ipv+Cstr(rt)  end if  end if  Set fso = CreateObject("Scripting.FileSystemObject")  if fso.fileexists("e:\ip.reg") then  set f2=fso.getfile("e:\ip.reg")  f2.delete  end if '如果存在ip.reg,先删了  set f1 = fso.CreateTextFile("e:\ip.reg", True) ' 建立文件ip.cfg  'f1.WriteLine("REGEDIT4") ' 以下为生成注册表  f1.WriteLine("Windows Registry Editor Version 5.00")  f1.WriteBlankLines(1)  f1.WriteLine("[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName]")  f1.WriteLine(chr(34) & "ComputerName" & chr(34) & "=" & chr(34) & t & chr(34)) ' 计算机名  f1.WriteLine("[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000]")  f1.WriteLine(chr(34) & "IPAddress" & chr(34) & "=" & chr(34) & ipv & chr(34)) ' IP  f1.WriteLine("[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000]")  f1.WriteLine(chr(34) & "DefaultGateway" & chr(34) & "=" & chr(34) & gateway & chr(34)) ' 网关  f1.WriteLine("[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000]")  f1.WriteLine(chr(34) & "IPMask" & chr(34) & "=" & chr(34) & "255.255.255.0" & chr(34)) ' 子网掩码  f1.WriteLine("[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]")  f1.WriteLine(chr(34) & "Comment" & chr(34) & "=" & chr(34) & t & chr(34)) ' 计算机说明  f1.WriteLine("[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]")  f1.WriteLine(chr(34) & "ComputerName" & chr(34) & "=" & chr(34) & t & chr(34)) ' 计算机名  f1.WriteLine("[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]")  f1.Writeline(chr(34) & "Workgroup" & chr(34) & "=" & chr(34) & lan & chr(34)) ' 工作组  end sub 。

最后此篇关于利用vbs自动修改ip的代码的文章就讲到这里了,如果你想了解更多关于利用vbs自动修改ip的代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com