注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

奕克

爱家人爱工作爱生活

 
 
 

日志

 
 

用vbs脚本实现计算机IP自动配置  

2010-03-26 22:36:23|  分类: 技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  作为一名计算机教师,我每天提着笔记本电脑奔走于各个实验室之间,由于实验室的条件限制,没有无线网络。每次总要插上网线,更惨的是!实验室没有DHCP!(不知道什么是DHCP?赶紧google一下!),所以我每次要周而复始的进行IP的静态配置,每个实验室都有一个不同的IP,GATEWAY,甚至DNS!
       终于今天,2010年3月26日下午,我对自己说,我过够这种日子了!来吧,用我们的程序来简化我们的生活!计算机自动维护方面,VBS脚本宿主语言首当其冲,我们不应该只用它来造病毒哦!下午3点开始网上找程序,copy and modify,晚上跟同事开了个网络会议,中间吃顿饭,现在,我完成了我的程序,跟大家分享一下, 希望大家能收益!
  首先,在c盘根目录建立一个dizhi.txt文本文档,其格式如下:
 
00:1B:77:C1:8B:69
10.146.140.251,255.255.255.0,10.146.140.254,192.168.3.1,192.168.4.1
192.168.1.100,255.255.255.0,192.168.1.1,192.168.1.1,192.168.1.1
10.145.1.100,255.255.255.0,10.145.1.1,192.168.1.1,192.168.1.1
 
      解释一下,第一行是要配置的网卡MAC地址,因为你的本本可能有很多网络连接。接下来,每一行分别是IP地址,子网掩码,网关,以及两个DNS地址,相互之间用逗号分隔。
     然后,同样在C盘根目录下建立扩展名为.VBS的文件(用notepad进行书写,保存时别选择扩展名为txt,而是所有文件形式),内容如下:
 
flag=false
main()
 
sub main()
set fs =createobject("scripting.filesystemobject")
set ts=fs.opentextfile("c:\dizhi.txt",1,true)
mymac=ts.readline
do while ts.atendofstream<>true
   ls=ts.readline
   cs=split(ls,",")
   strComputer = "." 
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set colNetAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") 
strIPAddress = Array(cs(0)) 
strSubnetMask = Array(cs(1)) 
strGateway = Array(cs(2)) 
strGatewayMetric = Array(1) 
arrDNSServerSearchOrder = Array(cs(3),cs(4))
For Each objNetAdapter in colNetAdapters 
if objNetAdapter.MACAddress=mymac then
    objNetAdapter.EnableStatic strIPAddress,strSubnetMask 
    objNetAdapter.SetGateways strGateway, strGatewaymetric 
    objNetAdapter.SetDNSServerSearchOrder arrDNSServerSearchOrder
    call pt(cs(2))
    if flag=true then
    ts.close
    exit sub
    end if
end if
Next 
loop
ts.close
end sub

sub pt(machine)
strComputer = "." 
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set objPing = objWMIService.ExecQuery("select * from Win32_PingStatus where address ='" & machine & "'") 
For Each objStatus in objPing 
If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then 
Else 
MsgBox machine & " 通啦" 
flag=true
End If 
Next 
end sub
 
好的,程序很粗糙,因为我很忙。这样做好后双击你的vbs文件就可以运行了!不懂什么是VBS?你OUT拉! 如果IP列表里面有一行能通网络,就会显示 "IP地址通啦" 的消息框,怎么样?可以做到一次IP配置,N次运行了吧? 是的,这就是我们该做的事情——让程序简化我们的生活! 实现有问题的可以Q我。。。。
 
                                                                                                (CSK 写于 2010年3月26日晚10时)
                            
 
  评论这张
 
阅读(136)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017