On utilise ici la classe Win32_NetworkAdapter et on ne garde que les cartes de type Ethernet 802.3 avec la propriété NetEnabled à True ou false.
Une carte Ethernet 802.3 peut très bien être une carte wifi.
La méthode enable ou disable permet d'activer ou non la carte réseau.
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
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
'Wscript.Echo "Availability : " & objItem.Availability
Wscript.Echo ""
'objItem.Disable 'In order to disable the network card
'Exit for
End If
Next
Set objWMIService = Nothing
Lien vers le fichier : cliquez ici
Ici on utilise la classe Win32_NetworkAdapter qui permet par exemple de désactiver la carte réseau et d'avoir son GUID puis la classe Win32_NetworkAdapterConfiguration pour avoir l'adresse ip.
On fait le lien entre les 2 avec l'adresse MAC.
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
Lien vers le fichier : cliquez ici
Remarque
Comme montré dans l'article 4487, en plus de l'adresse MAC, on peut aussi faire le lien entre la classe Win32_NetworkAdapter et NetworkAdapterConfiguration avec le GUID de la carte réseau
Pages Web
Site Web | Description |
---|---|
Msdn.microsoft.com | Win32_NetworkAdapter class |
Msdn.microsoft.com | Win32_NetworkAdapterConfiguration class |
Article(s) suivant(s)
Article(s) en relation(s)