快速业务通道

vbs Windows系统改变或修改网卡的MAC地址的脚本与软件第1/2页

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
''/*=========================================================================
''*Intro网上找了一圈,都不怎么好,有一个比较不错的,汉化作者汉化时加了个自己的介绍文件,这个文件比程序本身还大,感觉不爽,于是本人的VBS版MAC修改代码便诞生了,在使用过程中如果出现不能上网的情况得返回一下网卡驱动(有些机器比较特别),如果要返回以前的MAC可以:开始-->控制面板-->网络连接-->点击您的网卡(一般是"本地连接")-->点击常规里的属性-->配置..-->高级-->选中-->NetworkAddress-->右边选择"不存在"
''*FileNameChangeMAC.vbs
''*Authoryongfa365
''*Versionv3.0
''*WEBhttp://www.yongfa365.com
''*Emailyongfa365[at]qq.com

''*MadeTime2007-12-0922:17:58
''*LastModify2007-12-1318:35:58
''*==========================================================================*/

OnErrorResumeNext
strComputer="."
SetobjWMIService=GetObject("winmgmts:\\"&strComputer&"\root\cimv2")
SetcolItems=objWMIService.ExecQuery("Select*fromWin32_NetworkAdapterConfigurationwhereIPEnabled=true",,48)
ForEachobjItemincolItems
msg=msg&"编号:"&objItem.Index&"MAC:"&objItem.MACAddress&vbCrLf&"网卡:"&objItem.Description&vbCrLf&vbCrLf
Next

idx=InputBox(msg,"1/2请输入您要修改的MAC的编号","1")
IfNotIsNumeric(idx)OrLen(idx)=0Then
WScript.Echo"编号输入有误,退出"
Wscript.Quit
EndIf
MAC=InputBox("输入你指定的MAC地址值(注意应该是12位的连续数字或字母,其间没有-、:等分隔符)","2/2请输入修改后的MAC地址","000000000000")
MAC=Replace(Replace(Replace(MAC,":",""),"-",""),"","")
IfRegExpTest("[^\da-fA-F]",MAC)>0OrLen(MAC)<>12Then
WScript.Echo"MAC输入有误,退出"
Wscript.Quit
EndIf


idx=Right("00000"&idx,4)
reg="HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\"&idx
SetWSHShell=CreateObject("WScript.Shell")
WshShell.RegWritereg&"\NetworkAddress",MAC,"REG_SZ"
WshShell.RegWritereg&"\Ndi\params\NetworkAddress\default",MAC,"REG_SZ"
WshShell.RegWritereg&"\Ndi\params\NetworkAddress\ParamDesc","NetworkAddress","REG_SZ"
WshShell.RegWritereg&"\Ndi\params\NetworkAddress\optional","1","REG_SZ"
''得到网卡的名称,比如“本地连接2”
NetWorkName=WshShell.RegRead("HKLM\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\"&WshShell.RegRead(reg&"\NetCfgInstanceId")&"\Connection\Name")

restartNetWorkNetWorkName
''WScript.Echo"修改成功"

FunctionrestartNetWork(sConnectionName)
''重启网卡
''sConnectionName="本地连接5"''可改成需要控制的连接名称,如"无线网络连接"等
''定位到网络连接
SetshellApp=CreateObject("shell.application")
SetoControlPanel=shellApp.Namespace(3)
ForEachfolderiteminoControlPanel.Items
Iffolderitem.Name="网络连接"Then
SetoNetConnections=folderitem.GetFolder
ExitFor
EndIf
Next
''定位到要处理的网卡
ForEachfolderiteminoNetConnections.Items
IfLCase(folderitem.Name)=LCase(sConnectionName)Then
SetoLanConnection=folderitem
ExitFor
EndIf
Next
''重启网卡
Fori=1To2
ForEachverbinoLanConnection.verbs
IfRegExpTest("启用|禁用|停止",verb.Name)>0Then
verb.DoIt
ExitFor
EndIf
Next
''有时网卡半天反应不过来,可以把这个参数设的大点一般程序可以正常运行,或您多运行几次程序
WScript.Sleep5000
Next


EndFunction


''正则测试有没有匹配内容

FunctionRegExpTest(patrn,strng)
Setre=NewRegExp
re.Pattern=patrn
re.IgnoreCase=True
re.Global=True
SetMatches=re.Execute(strng)
RegExpTest=Matches.Count
EndFunction

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号