1

У меня есть скрипт, который отображает некоторую информацию IP, логин и Mac адреса, но он показывает все адреса Mac, даже устройства Bluetooth. Как изменить этот скрипт, чтобы он отображал MAC-адрес только проводного интерфейса Ethernet, а также отображал его имя?

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 ответ1

0

Сценарий имеет несколько проблем, но для исключения устройств 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

Устройства Bluetooth имеют PNPDeviceID, который начинается с «BTH», так что это исключает его из выбора.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .