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

2019-01-16 04:56:14王旭

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 = "HKLMSYSTEMCurrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002bE10318}" & idx   
Set WSHShell = CreateObject("WScript.Shell")   
WshShell.RegWrite reg & "NetworkAddress", MAC , "REG_SZ"  
WshShell.RegWrite reg & "NdiparamsNetworkAddressdefault" , MAC , "REG_SZ"  
WshShell.RegWrite reg & "NdiparamsNetworkAddressParamDesc" , "NetworkAddress" , "REG_SZ"  
WshShell.RegWrite reg & "NdiparamsNetworkAddressoptional" , "1" , "REG_SZ"  
'得到网卡的名称,比如“本地连接 2”   
NetWorkName = WshShell.RegRead("HKLMSYSTEMControlSet001ControlNetwork{4D36E972-E325-11CE-BFC1-08002BE10318}" & WshShell.RegRead(reg & "NetCfgInstanceId") & "ConnectionName")   

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