Option Explicit '2015 02 02 version 'List network cards with connected or Disconnected state 'http://msdn.microsoft.com/en-us/library/gg196652%28v=vs.85%29.aspx Dim strComputer Dim objWMIService, colItems Dim objItem Dim colNetCard, objNetCard, strIPAddress Dim MaLigne Dim dicAdressesMAC, varMesCles, varCompteur 'Pour un dictionnaire qui va contenir la liste des adresses MAC set dicAdressesMAC = CreateObject("Scripting.Dictionary") Wscript.echo "Liste des cartes réseaux connectées ou désactivées :" strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter Where AdapterType = 'Ethernet 802.3'") 'Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter Where NetEnabled = True AND AdapterType = 'Ethernet 802.3'") 'We look for the firt available Ethernet network card GUID For Each objItem in colItems If (objItem.NetEnabled = True) Or (objItem.NetEnabled = False) Then 'Quand une carte est désactivée, elle ne retourne rien quand on interroge .NetEnabled A désactivée par contre elle retourne false, et si elle est connectée elle retourne true Wscript.Echo "NetConnectionId: " & objItem.NetConnectionId Wscript.Echo VbTab & "Name : " & objItem.Name Wscript.Echo VbTab & "ProductName : " & objItem.ProductName Wscript.Echo VbTab & "MACAddress : " & objItem.MACAddress Wscript.Echo VbTab & "Manufacturer : " & objItem.Manufacturer Wscript.Echo VbTab & "GUID : " & objItem.GUID Wscript.Echo VbTab & "Description : " & objItem.Description Wscript.Echo VbTab & "AdapterType : " & objItem.AdapterType Wscript.Echo VbTab & "AdapterTypeID : " & objItem.AdapterTypeID Wscript.Echo VbTab & "NetEnabled : " & objItem.NetEnabled Wscript.Echo VbTab & "PNPDeviceID : " & objItem.PNPDeviceID 'Si l'adresse MAC n'est par référencée, on la stocke dans le dictionnaire If Len(objItem.MACAddress) > 0 Then if dicAdressesMAC.Exists(objItem.MACAddress) then 'Do Nothing else dicAdressesMAC.Add objItem.MACAddress, objItem.NetConnectionId 'La clé est l'adresse MAC. La valeur le nom de la carte réseau end if End If 'Wscript.Echo "Availability : " & objItem.Availability Wscript.Echo "" 'objItem.Disable 'In order to disable the network card 'Exit for End If Next Set objWMIService = Nothing 'Affichage du contenu du dictionnaire 'Wscript.Echo "Résumé des adresses MAC des cartes réseau connectées :" 'varMesCles=dicAdressesMAC.keys 'For varCompteur=0 To ubound(varMesCles) 'Wscript.echo (varMesCles(varCompteur)) & " : " & dicAdressesMAC.item(varMesCles(varCompteur)) 'On affiche dans un premier temps la clé qui est ici l'adresse MAC puis la valeur soit le nom de la carte réseau 'Next 'Wscript.Echo "" 'On se sert maintenant de la classe Win32_NetworkAdapterConfiguration pour récupérer les informations comme l'adresse IP. C'est l'adresse MAC précédemment récupérée qui sert d'identifiant unique Wscript.Echo "Affichage des adresses IP des cartes réseau avec la priorite des cartes" Wscript.Echo "Pour la priorite plus le chiffre est bas et plus la carte est prioritaire" strComputer = "." Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 'regValueDataMetric = "35" Set colNetCard = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") For Each objNetCard in colNetCard For Each strIPAddress in objNetCard.IPAddress if dicAdressesMAC.Exists(objNetCard.MACAddress) Then 'Si l'adresse MAC a été repérée avant MaLigne = objNetCard.Description & VbTab & "IP " & strIPAddress & VbTab & "MAC : " & objNetCard.MACAddress & VbTab & "Priorite " & objNetCard.IPConnectionMetric Wscript.Echo MaLigne 'objNetCard.SetIPConnectionMetric(regValueDataMetric) End If Next Next