以太网有线接口的 Mac 地址

以太网有线接口的 Mac 地址

我有一个脚本,可以显示一些信息 IP、登录名和 Mac 地址,但它会显示所有 mac 地址,甚至蓝牙设备。如何修改此脚本以仅列出以太网有线接口的 mac 地址,并显示其名称?

Dim WMI, Configs, Config, Adapters, Adapter
Dim Nics, Nic, StrIP, CompName
Dim intCount, strMAC, strQuery, objWMIService, colItems, objItem, i 
Dim WshNetwork, strUserName

intCount = 0
strMAC   = ""
' We're interested in MAC addresses of physical adapters only
strQuery = "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID > ''"

Set objWMIService = GetObject( "winmgmts://./root/CIMV2" )
Set colItems      = objWMIService.ExecQuery( strQuery, "WQL", 48 )

For Each objItem In colItems
If InStr( strMAC, objItem.MACAddress ) = 0 Then
    strMAC   = strMAC & ", " & objItem.MACAddress
    intCount = intCount + 1
End If
Next

' Remove leading comma
If intCount > 0 Then strMAC = Mid( strMAC, 2 )

Set Nics = GetObject("winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")

For Each Nic in Nics
    if Nic.IPEnabled then
        StrIP = Nic.IPAddress(i)
        Set WshNetwork = WScript.CreateObject("WScript.Network")

        CompName = WshNetwork.Computername
        Set WMI = GetObject("winmgmts:{impersonationlevel=impersonate}root/cimv2")
        strUserName = wshNetwork.UserName

        ' BEGIN CALLOUT A
        Set Configs = WMI.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled=True")
        ' END CALLOUT A

        For Each Config In Configs
            ' BEGIN CALLOUT B
            Set Adapters = WMI.AssociatorsOf("Win32_NetworkAdapterConfiguration.Index=" & Config.Index, "Win32_NetworkAdapterSetting")
            ' END CALLOUT B
            'For Each Adapter In Adapters
            'If Left(Adapter.Description, 14) = "Cisco AnyConnect VPN Virtual Miniport Adapter for Windows" Then
            'VPNIP = Config.IPAddress(0)
            'End If
         Next
        'Next

        MsgBox "IP Adres:      "&StrIP & vbNewLine _
             & "Computer Name: "&CompName & vbNewLine _
             & "Login:         "&strUserName & vbNewLine _
             & "Mac Adres:     "& strMAC _
             ,4160,"Information IP"

        'wscript.quit
    end if
next

答案1

该脚本存在几个问题,但是为了排除 BT 设备,您可以更改此设置:

For Each objItem In colItems
If InStr( strMAC, objItem.MACAddress ) = 0 Then
    strMAC   = strMAC & ", " & objItem.MACAddress
    intCount = intCount + 1
End If
Next

对此:

For Each objItem In colItems
If (InStr( strMAC, objItem.MACAddress ) = 0) And (Left(objItem.PNPDeviceID, 4) <> "BTH\") Then
    strMAC   = strMAC & ", " & objItem.MACAddress
    intCount = intCount + 1
End If
Next

蓝牙设备具有以“BTH \”开头的 PNPDeviceID,因此将其排除在选择之外。

相关内容