2 votes

Adresse Mac de l'interface filaire ethernet

J'ai un script qui affiche certaines informations IP, nom de connexion, et adresses Mac mais il montre toutes les adresses macess même le périphérique bluetooth. Comment modifier ce script pour lister l'adresse mac de seulement l'interface filaire ethernet, et afficher aussi son nom ?

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

1voto

shawn Points 807

Il y a plusieurs problèmes avec le script, mais pour exclure les appareils BT, vous pourriez le modifier :

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

A ceci :

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

Les périphériques Bluetooth ont un PNPDeviceID qui commence par "BTH\", ce qui les exclut de la sélection.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X