vbs Windows系统改变或修改网卡的MAC地址的脚本与软件第1/2页
'/*=========================================================================
' * Intro 网上找了一圈,都不怎么好,有一个比较不错的,汉化作者汉化时加了个自己的介绍文件,这个文件比程序本身还大,感觉不爽,于是本人的VBS版MAC修改代码便诞生了,在使用过程中如果出现不能上网的情况得返回一下网卡驱动(有些机器比较特别),如果要返回以前的MAC可以:开始-->控制面板-->网络连接-->点击您的网卡(一般是"本地连接")-->点击常规里的属性-->配置..-->高级-->选中-->NetworkAddress-->右边选择"不存在"
' * FileName ChangeMAC.vbs
' * Author yongfa365
' * Version v3.0
' * WEB http://www.yongfa365.com
' * Email yongfa365[at]qq.com
' * MadeTime 2007-12-09 22:17:58
' * LastModify 2007-12-13 18:35:58
' *==========================================================================*/
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=true", , 48)
For Each objItem in colItems
msg = msg & "编号:" & objItem.Index & " MAC:" & objItem.MACAddress & vbCrLf & "网卡:" & objItem.Description & vbCrLf & vbCrLf
Next
idx = InputBox( msg , "1/2请输入您要修改的MAC的编号", "1")
If Not IsNumeric(idx) Or Len(idx) = 0 Then
WScript.Echo "编号输入有误,退出"
Wscript.Quit
End If
MAC = InputBox( "输入你指定的MAC地址值(注意应该是12位的连续数字或字母,其间没有-、:等分隔符)" , "2/2请输入修改后的MAC地址", "000000000000")
MAC = Replace(Replace(Replace(MAC, ":", ""), "-", ""), " ", "")
If RegExpTest("[^\da-fA-F]", MAC)>0 Or Len(MAC)<>12 Then
WScript.Echo "MAC输入有误,退出"
Wscript.Quit
End If
idx = Right("00000"&idx, 4)
reg = "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\" & idx
Set WSHShell = CreateObject("WScript.Shell")
WshShell.RegWrite reg & "\NetworkAddress", MAC , "REG_SZ"
WshShell.RegWrite reg & "\Ndi\params\NetworkAddress\default" , MAC , "REG_SZ"
WshShell.RegWrite reg & "\Ndi\params\NetworkAddress\ParamDesc" , "NetworkAddress" , "REG_SZ"
WshShell.RegWrite reg & "\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")
restartNetWork NetWorkName
'WScript.Echo "修改成功"
Function restartNetWork(sConnectionName)
'重启网卡
'sConnectionName = "本地连接 5" '可改成需要控制的连接名称,如"无线网络连接"等
'定位到网络连接
Set shellApp = CreateObject("shell.application")
Set oControlPanel = shellApp.Namespace(3)
For Each folderitem in oControlPanel.Items
If folderitem.Name = "网络连接" Then
Set oNetConnections = folderitem.GetFolder
Exit For
End If
Next
'定位到要处理的网卡
For Each folderitem in oNetConnections.Items
If LCase(folderitem.Name) = LCase(sConnectionName) Then
Set oLanConnection = folderitem
Exit For
End If
Next
'重启网卡
For i = 1 To 2
For Each verb in oLanConnection.verbs
If RegExpTest("启用|禁用|停止", verb.Name)>0 Then
verb.DoIt
Exit For
End If
Next
'有时网卡半天反应不过来,可以把这个参数设的大点一般程序可以正常运行,或您多运行几次程序
WScript.Sleep 5000
Next
End Function
'正则测试有没有匹配内容
Function RegExpTest(patrn, strng)
Set re = New RegExp
re.Pattern = patrn
re.IgnoreCase = True
re.Global = True
Set Matches = re.Execute(strng)
RegExpTest = Matches.Count
End Function
栏 目:vb
下一篇:vbs选择文件夹效果代码
本文标题:vbs Windows系统改变或修改网卡的MAC地址的脚本与软件第1/2页
本文地址:https://www.xiuzhanwang.com/a1/vb/7647.html
您可能感兴趣的文章
- 01-10下载文件到本地运行的vbs
- 01-10VBS中的正则表达式的用法大全 <font color=red>原创&
- 01-10VBS中SendKeys的基本应用
- 01-10VBScript教程 第十一课深入VBScript
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript语法速查及实例说明
- 01-10VBS中Select CASE的其它用法
- 01-10VBScript教程 第七课使用条件语句
- 01-10vbscript 可以按引用传递参数吗?
- 01-10VBScript教程 第二课在HTML页面中添加VBscript代码
阅读排行
本栏相关
- 01-10下载文件到本地运行的vbs
- 01-10飘叶千夫指源代码,又称qq刷屏器
- 01-10SendKeys参考文档
- 01-10什么是一个高效的软件
- 01-10VBS中的正则表达式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本应用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一课深入VBScript
- 01-10VBScript语法速查及实例说明
随机阅读
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-11ajax实现页面的局部加载
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-10SublimeText编译C开发环境设置
- 01-10C#中split用法实例总结
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10delphi制作wav文件的方法
- 04-02jquery与jsp,用jquery