[VBScript] Savoir si on communique sur une carte Wireless ou ether
8 réponses
SebD
Bonjour
Je cherche à savoir si mon pc communique par ethernet ou par wireless (je
mets à part les questions de routage et de metric). Je cherche à savoir si
soit l'interface ethernet est montée et opérationnelle (adresse ip valide)
ou si c'est l'interface wireless qui est montée.
Pour l'instant, j'ai suivi plusieurs pistes
Par WMI
Code:
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM
Win32_NetworkAdapter", "WQL", _
wbemFlagReturnImmediately +
wbemFlagForwardOnly)
For Each objItem In colItems
' detection du type de carte
If objItem.NetConnectionStatus = 2 Or objItem.NetConnectionStatus = 7 Then
TypeCarte = ""
Select Case objItem.AdapterType
Case "Wireless"
TypeCarte = "Wireless"
Case "Ethernet 802.3"
If InStr(LCase(objItem.ProductName), "wireless") <> 0 Then
TypeCarte = "Wireless"
End If
If InStr(LCase(objItem.ProductName), "ethernet") <> 0 Then
TypeCarte = "Ethernet"
End If
End Select
If TypeCarte = "Ethernet" Then
Ethernetconnected = 1
End If
If TypeCarte = "Wireless" Then
WirelessConnected = 1
End If
End If
Next
If Ethernetconnected = 1 Then
List1.AddItem ("Reseau Ethernet détecté")
End If
If WirelessConnected = 1 Then
List1.AddItem ("Reseau sans fil détecté")
End If
If Ethernetconnected = 1 Then
List1.AddItem ("Reseau Ethernet selectionné")
Else
If WirelessConnected = 1 Then
List1.AddItem ("Reseau sans fil selectionné")
Else
List1.AddItem ("Reseau non détecté")
End If
End If
Le soucis est que objItem.AdapterType est toujours positioné à "Ethernet
802.3" même pour une carte Wireless et pour une carte 1394
Je fais donc la distinction avec le nom de la carte, s'il y a "wireless" ou
"ethernet" dans le nom. Mais ce truc ne marche pas.
J'ai essaye avec netsh
netsh
diag
ping ip
ca ne marche pas non plus
Savez-vous à quel endroit je peux trouver l'information, dans "propriétés
des favoris réseaux" on voit bien la distinction entre "Connexion au réseau
local" et "Connexion sans fil".
Pour info, mon programme doit pouvoir marcher dans plusieurs langues
Une solution en invite de commande (ou batch) : netsh diag show ip
Astuce : après avoir tapé la ligne, ne pas oublier : - d'appuyer sur la touche [Entrée] - de lire le résultat
;o)
-- @-salutations
Michel Claveau
Méta-MCI
Re
Et voici, ci-dessous, la même chose, en VBS.
Vous remarqurez que le VBS est 18 fois plus gros (nb de lignes) que le batch.
CQFD
MCI
Dim ipadapter Dim shell Dim commande dim exec dim resultat
if wscript.Arguments.Count then message = "inutile d'utiliser des arguments ou paramètres" msgbox message end if
commande="netsh diag show ip" Set shell = wscript.createobject("WScript.Shell") Set exec = shell.exec(commande) resultat = exec.Stdout.ReadLine resultat = exec.Stdout.ReadLine resultat = resultat & exec.Stdout.ReadLine rem la ligne ci-dessous, facultative, donne aussi l'adresse IP rem resultat = resultat & vbCrLf & exec.Stdout.ReadLine msgbox(resultat)
Re
Et voici, ci-dessous, la même chose, en VBS.
Vous remarqurez que le VBS est 18 fois plus gros (nb de lignes) que le
batch.
CQFD
MCI
Dim ipadapter
Dim shell
Dim commande
dim exec
dim resultat
if wscript.Arguments.Count then
message = "inutile d'utiliser des arguments ou paramètres"
msgbox message
end if
commande="netsh diag show ip"
Set shell = wscript.createobject("WScript.Shell")
Set exec = shell.exec(commande)
resultat = exec.Stdout.ReadLine
resultat = exec.Stdout.ReadLine
resultat = resultat & exec.Stdout.ReadLine
rem la ligne ci-dessous, facultative, donne aussi l'adresse IP
rem resultat = resultat & vbCrLf & exec.Stdout.ReadLine
msgbox(resultat)
Vous remarqurez que le VBS est 18 fois plus gros (nb de lignes) que le batch.
CQFD
MCI
Dim ipadapter Dim shell Dim commande dim exec dim resultat
if wscript.Arguments.Count then message = "inutile d'utiliser des arguments ou paramètres" msgbox message end if
commande="netsh diag show ip" Set shell = wscript.createobject("WScript.Shell") Set exec = shell.exec(commande) resultat = exec.Stdout.ReadLine resultat = exec.Stdout.ReadLine resultat = resultat & exec.Stdout.ReadLine rem la ligne ci-dessous, facultative, donne aussi l'adresse IP rem resultat = resultat & vbCrLf & exec.Stdout.ReadLine msgbox(resultat)
SebD
Merci pour votre réponse
Malheureusement, dans les cartes réseaux qu'ils affichent, je ne sais pas si ce sont des cartes qui communiquent par WIFI ou par ethernet
A+
SebD
Bonjour !
Une solution en invite de commande (ou batch) : netsh diag show ip
Astuce : après avoir tapé la ligne, ne pas oublier : - d'appuyer sur la touche [Entrée] - de lire le résultat
;o)
-- @-salutations
Michel Claveau
Merci pour votre réponse
Malheureusement, dans les cartes réseaux qu'ils affichent, je ne sais pas si
ce sont des cartes qui communiquent par WIFI ou par ethernet
A+
SebD
Bonjour !
Une solution en invite de commande (ou batch) :
netsh diag show ip
Astuce : après avoir tapé la ligne, ne pas oublier :
- d'appuyer sur la touche [Entrée]
- de lire le résultat
Malheureusement, dans les cartes réseaux qu'ils affichent, je ne sais pas si ce sont des cartes qui communiquent par WIFI ou par ethernet
A+
SebD
Bonjour !
Une solution en invite de commande (ou batch) : netsh diag show ip
Astuce : après avoir tapé la ligne, ne pas oublier : - d'appuyer sur la touche [Entrée] - de lire le résultat
;o)
-- @-salutations
Michel Claveau
Méta-MCI
Re
Sur 3 machines, j'ai l'indication 802.11g ou 801.11b ou 802.11
Mais, effectivement, ce n'est pas généralisable. Ceci dit, netsh peut donner beaucoup d'informations ; peut-être y en a t'il une qui conviendrait ? Faire "netsh ?" pour avoir plus de détails (et "netsh XXX ?")
@+
MCI
Re
Sur 3 machines, j'ai l'indication 802.11g ou 801.11b ou 802.11
Mais, effectivement, ce n'est pas généralisable. Ceci dit, netsh peut donner
beaucoup d'informations ; peut-être y en a t'il une qui conviendrait ?
Faire "netsh ?" pour avoir plus de détails (et "netsh XXX ?")
Sur 3 machines, j'ai l'indication 802.11g ou 801.11b ou 802.11
Mais, effectivement, ce n'est pas généralisable. Ceci dit, netsh peut donner beaucoup d'informations ; peut-être y en a t'il une qui conviendrait ? Faire "netsh ?" pour avoir plus de détails (et "netsh XXX ?")
@+
MCI
SebD
Merci pour toutes vos réponses
C'est vraiment un problème de savoir comment fait windows pour savoir si une carte réseau doit etre appele "connexion au réseau local xx" au "connexion réseau sans fil"
Est-ce que c'est dans le driver de la carte ? dans ce cas, où l'information est-elle stockée ensuite ?
Connaissez-vous des forums plus spécialisés de ce domaine ?
Pour Méta-MCI
A quel niveau tu as vu 802.11g Avec la commande "netsh diag show ip" Le nom de la carte est "Intel(R) PRO/Wireless 2200BG Network Connection"
A+
Sebd
Re
Sur 3 machines, j'ai l'indication 802.11g ou 801.11b ou 802.11
Mais, effectivement, ce n'est pas généralisable. Ceci dit, netsh peut donner beaucoup d'informations ; peut-être y en a t'il une qui conviendrait ? Faire "netsh ?" pour avoir plus de détails (et "netsh XXX ?")
@+
MCI
Merci pour toutes vos réponses
C'est vraiment un problème de savoir comment fait windows pour savoir si une
carte réseau doit etre appele "connexion au réseau local xx" au "connexion
réseau sans fil"
Est-ce que c'est dans le driver de la carte ? dans ce cas, où l'information
est-elle stockée ensuite ?
Connaissez-vous des forums plus spécialisés de ce domaine ?
Pour Méta-MCI
A quel niveau tu as vu 802.11g
Avec la commande "netsh diag show ip"
Le nom de la carte est "Intel(R) PRO/Wireless 2200BG Network Connection"
A+
Sebd
Re
Sur 3 machines, j'ai l'indication 802.11g ou 801.11b ou 802.11
Mais, effectivement, ce n'est pas généralisable. Ceci dit, netsh peut donner
beaucoup d'informations ; peut-être y en a t'il une qui conviendrait ?
Faire "netsh ?" pour avoir plus de détails (et "netsh XXX ?")
C'est vraiment un problème de savoir comment fait windows pour savoir si une carte réseau doit etre appele "connexion au réseau local xx" au "connexion réseau sans fil"
Est-ce que c'est dans le driver de la carte ? dans ce cas, où l'information est-elle stockée ensuite ?
Connaissez-vous des forums plus spécialisés de ce domaine ?
Pour Méta-MCI
A quel niveau tu as vu 802.11g Avec la commande "netsh diag show ip" Le nom de la carte est "Intel(R) PRO/Wireless 2200BG Network Connection"
A+
Sebd
Re
Sur 3 machines, j'ai l'indication 802.11g ou 801.11b ou 802.11
Mais, effectivement, ce n'est pas généralisable. Ceci dit, netsh peut donner beaucoup d'informations ; peut-être y en a t'il une qui conviendrait ? Faire "netsh ?" pour avoir plus de détails (et "netsh XXX ?")
@+
MCI
Méta-MCI
'soir !
Là, j'ai juste deux exemples :
CPU1 : [00000004] LAN-Express AS IEEE 802.11g miniPCI Adapter
CPU 2 : [00000012] Intersil PRISM Wireless LAN PCI Card
Ceci étant, lorsque je fais un IPCONFIG ou IPCONFIG /ALL j'ai aussi l'indication des types de contrôleurs réseau.
@+
MCI
'soir !
Là, j'ai juste deux exemples :
CPU1 :
[00000004] LAN-Express AS IEEE 802.11g miniPCI Adapter
CPU 2 :
[00000012] Intersil PRISM Wireless LAN PCI Card
Ceci étant, lorsque je fais un IPCONFIG ou IPCONFIG /ALL j'ai aussi
l'indication des types de contrôleurs réseau.
CPU1 : [00000004] LAN-Express AS IEEE 802.11g miniPCI Adapter
CPU 2 : [00000012] Intersil PRISM Wireless LAN PCI Card
Ceci étant, lorsque je fais un IPCONFIG ou IPCONFIG /ALL j'ai aussi l'indication des types de contrôleurs réseau.
@+
MCI
merlin01fr
Bonjour
la classe win32 qui t'interesse est : Win32_NetworkAdapterConfiguration
Si tu veux tu peux te servir du releve d'inventaire que j'ai cree en vbs qui te permettra d'extraire les informations souhaitée ou d'y rajouter ton code pour y executer tes manipulations en fonction du resultat trouvé.
le lien ci dessous te permettra d'extraire les classes win32 en fichier vbs
Optionnel pour ton cas (mais incomplet je ne le rajoute pas) et le lien ci dessous te permettra d'extraire les fichiers vbs generes par le script ci dessus en format csv + plein d'autre choses interessantes
CPU1 : [00000004] LAN-Express AS IEEE 802.11g miniPCI Adapter
CPU 2 : [00000012] Intersil PRISM Wireless LAN PCI Card
Ceci étant, lorsque je fais un IPCONFIG ou IPCONFIG /ALL j'ai aussi l'indication des types de contrôleurs réseau.
@+
MCI
Bonjour
la classe win32 qui t'interesse est : Win32_NetworkAdapterConfiguration
Si tu veux tu peux te servir du releve d'inventaire que j'ai cree en vbs qui
te permettra d'extraire les informations souhaitée ou d'y rajouter ton code
pour y executer tes manipulations en fonction du resultat trouvé.
le lien ci dessous te permettra d'extraire les classes win32 en fichier vbs
Optionnel pour ton cas (mais incomplet je ne le rajoute pas)
et le lien ci dessous te permettra d'extraire les fichiers vbs generes par
le script ci dessus en format csv + plein d'autre choses interessantes
la classe win32 qui t'interesse est : Win32_NetworkAdapterConfiguration
Si tu veux tu peux te servir du releve d'inventaire que j'ai cree en vbs qui te permettra d'extraire les informations souhaitée ou d'y rajouter ton code pour y executer tes manipulations en fonction du resultat trouvé.
le lien ci dessous te permettra d'extraire les classes win32 en fichier vbs
Optionnel pour ton cas (mais incomplet je ne le rajoute pas) et le lien ci dessous te permettra d'extraire les fichiers vbs generes par le script ci dessus en format csv + plein d'autre choses interessantes
CPU1 : [00000004] LAN-Express AS IEEE 802.11g miniPCI Adapter
CPU 2 : [00000012] Intersil PRISM Wireless LAN PCI Card
Ceci étant, lorsque je fais un IPCONFIG ou IPCONFIG /ALL j'ai aussi l'indication des types de contrôleurs réseau.
@+
MCI
merlin01fr
oups complement d'information
la classe qui t'interesse est Win32_NetworkAdapter pas la Win32_NetworkAdapterConfiguration
et en l'occurence dans cette classe se trouve la propriete : ConfigManagerErrorCode qui te retourne une erreur 22 si la carte est desactivee
il ne te reste plus qu'a creer les conditions que tu veux voir ressortir ou sur lesquelles tu dois appliquer un traitement .
Cordialement
Bonjour
la classe win32 qui t'interesse est : Win32_NetworkAdapterConfiguration
Si tu veux tu peux te servir du releve d'inventaire que j'ai cree en vbs qui te permettra d'extraire les informations souhaitée ou d'y rajouter ton code pour y executer tes manipulations en fonction du resultat trouvé.
le lien ci dessous te permettra d'extraire les classes win32 en fichier vbs
Optionnel pour ton cas (mais incomplet je ne le rajoute pas) et le lien ci dessous te permettra d'extraire les fichiers vbs generes par le script ci dessus en format csv + plein d'autre choses interessantes
CPU1 : [00000004] LAN-Express AS IEEE 802.11g miniPCI Adapter
CPU 2 : [00000012] Intersil PRISM Wireless LAN PCI Card
Ceci étant, lorsque je fais un IPCONFIG ou IPCONFIG /ALL j'ai aussi l'indication des types de contrôleurs réseau.
@+
MCI
oups complement d'information
la classe qui t'interesse est Win32_NetworkAdapter pas la
Win32_NetworkAdapterConfiguration
et en l'occurence dans cette classe se trouve la propriete :
ConfigManagerErrorCode qui te retourne une erreur 22 si la carte est
desactivee
il ne te reste plus qu'a creer les conditions que tu veux voir ressortir ou
sur lesquelles tu dois appliquer un traitement .
Cordialement
Bonjour
la classe win32 qui t'interesse est : Win32_NetworkAdapterConfiguration
Si tu veux tu peux te servir du releve d'inventaire que j'ai cree en vbs qui
te permettra d'extraire les informations souhaitée ou d'y rajouter ton code
pour y executer tes manipulations en fonction du resultat trouvé.
le lien ci dessous te permettra d'extraire les classes win32 en fichier vbs
Optionnel pour ton cas (mais incomplet je ne le rajoute pas)
et le lien ci dessous te permettra d'extraire les fichiers vbs generes par
le script ci dessus en format csv + plein d'autre choses interessantes
la classe qui t'interesse est Win32_NetworkAdapter pas la Win32_NetworkAdapterConfiguration
et en l'occurence dans cette classe se trouve la propriete : ConfigManagerErrorCode qui te retourne une erreur 22 si la carte est desactivee
il ne te reste plus qu'a creer les conditions que tu veux voir ressortir ou sur lesquelles tu dois appliquer un traitement .
Cordialement
Bonjour
la classe win32 qui t'interesse est : Win32_NetworkAdapterConfiguration
Si tu veux tu peux te servir du releve d'inventaire que j'ai cree en vbs qui te permettra d'extraire les informations souhaitée ou d'y rajouter ton code pour y executer tes manipulations en fonction du resultat trouvé.
le lien ci dessous te permettra d'extraire les classes win32 en fichier vbs
Optionnel pour ton cas (mais incomplet je ne le rajoute pas) et le lien ci dessous te permettra d'extraire les fichiers vbs generes par le script ci dessus en format csv + plein d'autre choses interessantes