- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我想做的是,如果鼠标位于“下一个”按钮上,它会以慢速向右滚动,如果鼠标没有位于“下一个”按钮上,它会停止滚动? 这是我的尝试http://jsfiddle.net/mdanz/nCCRy/14/ $(
StyleCop 是一个很棒的视觉工作室小插件。但它不会向您显示实时提示或提供任何自动修复。 随之而来的是 reSharper 和 StyleCop for reSharper,这是理想的解决方案,但
我为我的MatchQuery使用了模糊性选项,但是我想将模糊性值设置为auto。有什么办法吗? 另外,对于完成建议程序,您可以将其设置为支持unicode,对于我的MatchQuery,有什么方法可以
我想从表中获取一行[字符串名称,字符串密码,int 某些内容]并将其映射到一个 User 对象,该对象具有 3 个属性,如上面的 getter 和 setter有什么方法可以自动完成吗?我考虑过反射,
我有一个像这样的方法:void m1(string str) 并且有一个像这样的类: public class MyClass { public bool b1 { set; get; }
我正在尝试使用 $rootScope 从一个 Controller 向另一个 Controller $broadcast 一些数据。 如果我使用像 ng-click 这样的触发器来运行将广播的功能,它
我考虑了很多关于是要使用完全自动化的缓存还是手动缓存。 我们的自动方法是一种解决方案,它可以挖掘数据库、查询和格式化每个潜在和 future 的数据请求,并将其保存到适当的缓存存储(内存缓存或基于磁盘
我的 CSS 必须使用过渡来更改,直到现在我都使用 div:hover 来实现。 当您单击另一个 div 时需要激活过渡,而不是当您将鼠标悬停在必须移动/更改的 div 上时。 我该怎么做? 谢谢 永
在我的应用程序中,我需要一些动画,但如果它已经设置了动画,则不需要持续时间。但我的问题是它会自动添加持续时间。 在这里你可以看到 2 个函数,第二个没有持续时间但它确实有持续时间(可能从 1 秒开始)
两年前,我需要制作一个工具,通过 POST 自动将 txt/csv 文件上传到我的 Web 服务器,然后使用 cronjob 通过 PHP 对其进行解析。 这有两次在每天午夜自动发生。尽管这行得通,但
请阅读下面程序中的评论: #include void test(char c[]) { c=c+2; //why does this work ? c--; printf("%
也许是个幼稚的问题,但是...... 确认或拒绝: 自动和静态存储持续时间的对象/变量的内存的存在是在编译时确定的,程序运行时失败的可能性绝对为零,因为没有足够的内存用于自动对象。 自然地,当自动对象
有没有什么方法可以自动获得类中属性更改的通知,而不必在每个 setter 中都编写 OnPropertyChanged? (我有数百个属性,我想知道它们是否已更改)。 安东建议 dynamic pro
我们在使用 Azure DevOps 的项目中采用了 gitflow 流程。我有以下场景: 当功能分支合并到 Develop 时,我想在完成拉取请求的同时执行压缩合并策略 当 Release 分支定期
我的网站上有一个评论部分,我将 html 编码的评论保存在我的数据库中。所以我添加了这条评论- "testing" `quotes` \and backslashes\ and html 并将其保存在
是否存在“ checkin 前 TFS 自动 checkout ”这样的功能,以便在我说“ checkin ”之前我不会 checkout 任何文件,例如以防我只是临时更改文件 - 这一直发生。 换句
我有一个运行在 Linux/Apache/Tomcat 堆栈上的网站,它需要每隔几个月自动脱机以进行服务器维护,这将持续任意时间。有哪些选项可以让 Apache 建立和取消“服务器维护”页面? 我需要
我经常在工作中创建文档,在公司内部,由于我们使用的首字母缩写词和缩写词的数量,我们几乎拥有自己的语言。因此,我厌倦了在发布文档之前手动创建首字母缩写词和缩写表,并且快速的谷歌搜索发现了一个可以有效地为
我希望在用户或宏将计算模式从自动更改为手动或手动更改为自动时运行代码。是否有为此触发的事件? (属性是 Application.Calculation 在 Excel 互操作中。) 使用 Excel
这个问题在这里已经有了答案: Repeat command automatically in Linux (13 个回答) 6年前关闭。 我想创建一个脚本来获取另一个文件夹中的所有文件夹名称。并为这些
我是一名优秀的程序员,十分优秀!