Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2643 connectés 

  FORUM HardWare.fr
  Windows & Software

  Activer/desactiver une carte réseau via un script sur WinXP [Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Activer/desactiver une carte réseau via un script sur WinXP [Résolu]

n°2242367
yannick7fr
Posté le 01-12-2005 à 16:29:53  profilanswer
 

Bonjour,
 
Sur un poste en XP Pro, j'aimerais pouvoir activer / desactiver une connexion réseau au travers d'un script.  
J'ai essayer de voir avec "netsh" mais je n'y suis pas arrivé.
 
Est ce que quelqu'un a une solution?
 
D'avance merci
Yannick
 
Edit : Problème résolu, la solution un peu plus bas

Message cité 1 fois
Message édité par yannick7fr le 02-12-2005 à 14:05:08
mood
Publicité
Posté le 01-12-2005 à 16:29:53  profilanswer
 

n°2242382
Jovial
It's clobberin' time
Posté le 01-12-2005 à 16:39:27  profilanswer
 
n°2242390
yannick7fr
Posté le 01-12-2005 à 16:43:58  profilanswer
 

Je vais essayer cà dès demain (pour l'instant j'ai fini ma journée...;-)); je mettrai mes resultats en ligne.
Merci bcp pour ta réponse Jovial
 
Yannick

n°2243063
Jovial
It's clobberin' time
Posté le 02-12-2005 à 08:34:06  profilanswer
 

you' re welcome ;)

n°2243203
yannick7fr
Posté le 02-12-2005 à 11:10:54  profilanswer
 

J'ai pris le script dans sa totalité et je l'ai modifié  pour mettre le nom de ma connection réseau (LAN) et le nom du repertoire "Connexions réseau". Au final j'en suis là :

Citation :


Const ssfCONTROLS = 3
 
sConnectionName = "LAN"
 
sEnableVerb = "En&able"
sDisableVerb = "Disa&ble"
 
set shellApp = createobject("shell.application" )
set oControlPanel = shellApp.Namespace(ssfCONTROLS)
 
set oNetConnections = nothing
for each folderitem in oControlPanel.items
  if folderitem.name  = "Connexions réseau" then
    set oNetConnections = folderitem.getfolder: exit for
  end if
next
 
if oNetConnections is nothing then
  msgbox "Couldn't find 'Connexions réseau' folder"
  wscript.quit
end if
 
set oLanConnection = nothing
for each folderitem in oNetConnections.items
  if lcase(folderitem.name)  = lcase(sConnectionName) then
    set oLanConnection = folderitem: exit for
  end if
next
 
if oLanConnection is nothing then
  msgbox "Couldn't find '" & sConnectionName & "' item"
  wscript.quit
end if
 
bEnabled = true
set oEnableVerb = nothing
set oDisableVerb = nothing
s = "Verbs: " & vbcrlf
for each verb in oLanConnection.verbs
  s = s & vbcrlf & verb.name
  if verb.name = sEnableVerb then
    set oEnableVerb = verb  
    bEnabled = false
  end if
  if verb.name = sDisableVerb then
    set oDisableVerb = verb  
  end if
next
 
'debugging displays left just in case...
'
'msgbox s ': wscript.quit
'msgbox "Enabled: " & bEnabled ': wscript.quit
 
'not sure why, but invokeverb always seemed to work
'for enable but not disable. =20
'
'saving a reference to the appropriate verb object
'and calling the DoIt method always seems to work.
'
if bEnabled then
  oLanConnection.invokeverb sDisableVerb
  oDisableVerb.DoIt
else
  oLanConnection.invokeverb sEnableVerb
  oEnableVerb.DoIt
end if
 
'adjust the sleep duration below as needed...
'
'if you let the oLanConnection go out of scope
'and be destroyed too soon, the action of the verb
'may not take...
'
wscript.sleep 1000


 
J'obtiens le message d'erreur suivant :  
 

Citation :


Ligne : 63
Caractère. : 3
Erreur : Objet requis: 'oDisableVerb'
Code: 800A01A8
Source : Erreur d'execution Microsoft VBScript


 
N'étant pas un spécialiste du vbscript je suis un peu bloqué; donc si quelqu'un peut m'aider s'il vous plait.
D'avance merci
Yannick

n°2243403
yannick7fr
Posté le 02-12-2005 à 14:03:51  profilanswer
 

Finalement, j'ai trouvé!
Micro$oft met à disposition un utilitaire nommé DEVCON.EXE qui est dispo à cette adresse :  http://support.microsoft.com/defau [...] US;Q311272.
 
Avec cet utilitaire, on liste tout les périphérique présent sur la machine :
Soit par la commande suivante : devcon -m:\\test find pci\* (ou \\test est le nom de votre PC)
Soit par : devcon find *
 
Dans c=le resultat obtenu, il convient ensuite de trouver la carte réseau par son ID. En ce qui me concerne, j'ai lancer "devcon -m:\\test find pci\* " et cela donne :

Citation :


PCI\VEN_8086&DEV_1039&SUBSYS_10011734&REV_82\4&3B90381F&0&40F0: Intel(R) PRO/100 VE Network Connection #2
PCI\VEN_8086&DEV_244E&SUBSYS_00000000&REV_82\3&61AAA01&0&F0 : Intel(R) 82801EB PCI Bridge - 244E
PCI\VEN_8086&DEV_24C0&SUBSYS_00000000&REV_02\3&61AAA01&0&F8 : Intel(R) 82801DB LPC Interface Controller - 24C0  
PCI\VEN_8086&DEV_24C2&SUBSYS_10041734&REV_02\3&61AAA01&0&E8 : Contrôleur hôte universel USB Intel(r) 82801DB/DBM - 24C2
PCI\VEN_8086&DEV_24C3&SUBSYS_10041734&REV_02\3&61AAA01&0&FB : Intel(R) 82801DB/DBM SMBus Controller - 24C3  
PCI\VEN_8086&DEV_24C4&SUBSYS_10041734&REV_02\3&61AAA01&0&E9 : Contrôleur hôte universel USB Intel(r) 82801DB/DBM - 24C4
PCI\VEN_8086&DEV_24C5&SUBSYS_00881734&REV_02\3&61AAA01&0&FD : SoundMAX Integrated Digital Audio
PCI\VEN_8086&DEV_24C7&SUBSYS_10041734&REV_02\3&61AAA01&0&EA : Contrôleur hôte universel USB Intel(r) 82801DB/DBM - 24C7
PCI\VEN_8086&DEV_24CB&SUBSYS_10041734&REV_02\3&61AAA01&0&F9 : Intel(R) 82801DB Ultra ATA Storage Controller - 24CB
PCI\VEN_8086&DEV_24CD&SUBSYS_10041734&REV_02\3&61AAA01&0&EF : Contrôleur hôte étendu USB 2.0 Intel(r) 82801DB/DBM - 24CD
PCI\VEN_8086&DEV_2560&SUBSYS_00000000&REV_03\3&61AAA01&0&00 : Intel(R) 82845G/GL/GE/PE/GV Processor to I/O Controller - 2560  
PCI\VEN_8086&DEV_2562&SUBSYS_10031734&REV_03\3&61AAA01&0&10 : Intel(R) 82845G/GL/GE/PE/GV Graphics Controller


 
Ensuite, pour désactiver la carte réseau il faut lancer la commande suivante :  

Citation :

devcon disable *DEV_1039*


 
Et enfin pour activer la carte réseau

Citation :

devcon enable *DEV_1039*


 
Ces commandes fonctionnent très bien sur le poste en question mais je ne suis pas sur que cela fonctionne sur toutes les machines.  
Mais dans le principe il faut donner a l'executable devcon.exe un moyen unique de trouver la carte réseau. Pour mon cas, j'avais beaucoup de périphérique dont l'ID commencait par PCI\VEN... j'ai donc mis une * puis DEV_1039 puis un autre *.  
 
En tout cas, cette commande repond à mon besoin.
N'hésitez pas à me contacter si vous voulez des précisions.
 
Yannick
 
PS Merci Google

n°2248941
bigstyle
Posté le 07-12-2005 à 01:53:25  profilanswer
 

Merci pour cet outil je ne connaissais pas :)


Message édité par bigstyle le 07-12-2005 à 01:57:38
n°2336666
Tonton fli​ngueur2
Carpe diem
Posté le 23-02-2006 à 19:34:20  profilanswer
 

yannick7fr a écrit :

Bonjour,
 
Sur un poste en XP Pro, j'aimerais pouvoir activer / desactiver une connexion réseau au travers d'un script.  
J'ai essayer de voir avec "netsh" mais je n'y suis pas arrivé.
 
Est ce que quelqu'un a une solution?
 
D'avance merci
Yannick
 
Edit : Problème résolu, la solution un peu plus bas


 
Bonjour,
 
 
Petits complèments à votre message du 2/12/2005 !!
 
OK pour devcon : Il faut l'installer dans C:\Windows
 
Pour trouver l'ID d'une carte réseau : Gestionnaire périphérique/Propriétés de la carte réseau/Détail/Numéro d'identification du matériel : L'ID suit DEV ou _DEV.
 
Ayant 2 accès réseau j'ai écrit le script suivant pour choisir l'un ou l'autre : Sans fil ou réseau local(Câble)
 
 
 
Set WshShell = CreateObject("WScript.Shell" )
 
Err.Clear
On Error Resume Next
 
Reponse = WshShell.PopUp ("Oui : activer Wifi, Non : activer Câble", 0, "Activation réseau sans fil", vbYesNoCancel + vbQuestion + VbDefaultButton3)
 
If reponse = 7 Then
 WshShell.Run ("Devcon disable *DEV_3890*" ) ' Non --> Câble
 WshShell.Run ("Devcon enable *DEV00DF*" )
ElseIf reponse = 6 Then
 WshShell.Run ("Devcon enable *DEV_3890*" ) ' Oui --> Wifi
 WshShell.Run ("Devcon disable *DEV00DF*" )
End if
 
Wscript.Quit
 
 
Votre message m'a fait découvrir beaucoup de choses. Merci et bon vent. RM.[#000ef0]

n°2418307
la_globule
Posté le 24-05-2006 à 08:43:53  profilanswer
 

@yannick7fr :
 
J'ai trouvé l'erreur sur ton script.
 
Il faut remplacer les 2 lignes au début :
sEnableVerb = "En&able"
sDisableVerb = "Disa&ble"
 
par :
sEnableVerb = "&Activer"
sDisableVerb = "&Désactiver"  

 

et là, ça marche bien.
Ca fonctionne en flip-flop : tu lances, ça désactive, tu relances, ça réactive (comme un interrupteur).
 
Ce script a l'avantage qu'il peut fonctionner sur n'importe quelle machine et qu'il ne t'oblige pas à connaître l'identification PnP de la carte réseau.
 
Voilà.

n°2423248
yannick7fr
Posté le 30-05-2006 à 12:35:31  profilanswer
 

merci La_globule pour ta réponse  :)  
Le script corrigé fonctionne très bien et est beaucoup plus simple d'utilisation que DEVCON !

mood
Publicité
Posté le 30-05-2006 à 12:35:31  profilanswer
 

n°2575127
programmix
Posté le 18-11-2006 à 11:16:34  profilanswer
 

Bonjour,
 
J'ai un pc sous XP Pro qui est utilisé par différentes personnes.  L'une d'elles a tous les droits et est autorisées à se connecter au réseau de l'entreprise ainsi qu'à internet.  Les autres non.
 
Seulement malgré la désactivation des programmes comme internet explorer, mozilla, etc., ces utilisateurs parviennent encore à surfer sur internet en passant par des chemins détournés tels que le solitaire en ligne, le windows média player, etc.
 
Je vois donc dans l'utilisation de ce sript la manière radicale et sûre de bloquer ces utilisateurs.
 
Seulement voilà, je ne suis pas certain de la manière d'enregistrer le script, de l'endroit où le mettre et la façon de l'appeler de manière transparente pour les utilisateurs.
 
Si quelqu'un pouvait me tuyauter un peu, ça me ferait certainement ganer du temps...  D'avance merci

n°2838234
kimura
XBL et PSN: sebnec
Posté le 28-01-2009 à 16:40:39  profilanswer
 

Je sais que ce topic a deux ans mais, mon cher Tonton flingueur2, si tu traines encore dans le coin, merci beaucoup pour ce script que je viens d'utiliser et qui me fait gagner un temps fou (parce que je déconnectais / connectais manuellement mes connexions locale et sans fil)! ;)


---------------
Old school gaming rules.
n°3020911
Yeam
I'm your passenger
Posté le 23-12-2011 à 04:10:38  profilanswer
 

désolé pour le déterrage de topic... mais j'aimerais beaucoup ce script pour windows 7 64 bits, qqun sait-il comment faire?


---------------
TOPIC ACHATS/VENTES
n°3104651
breizhbugs
Posté le 07-11-2013 à 20:30:28  profilanswer
 

Bonsoir,
J'ai fait un petit script vbs wmi:

Code :
  1. strComputer = "."
  2. sConnectionName = "connexion au réseau local"
  3. Set objWMIService = GetObject("winmgmts:\\" &   strComputer & "\root\cimv2" )
  4. set colAdapters =   objWMIService.Execquery    ("Select * from Win32_NetworkAdapter" )
  5. For Each Adapter in colAdapters
  6. if lcase(Adapter.NetConnectionID)  = lcase(sConnectionName) then
  7.  WScript.Echo "/nid:" & Adapter.NetConnectionID & "/nom:" & Adapter.Name & " / enabled:" & Adapter.NetEnabled
  8.  if lcase(Adapter.NetEnabled)  = lcase("vrai" ) then
  9.   WScript.Echo "actif -> INACTIF"
  10.   Adapter.Disable()
  11.  else
  12.   WScript.Echo "inactif->ACTIF"
  13.   Adapter.Enable()
  14.  end if
  15.  exit for
  16. end if
  17. Next


bon au vu de la doc win32_networkadapter est deprecated mais marche pour ipv4 quand même chez moi (windows 7)
http://msdn.microsoft.com/en-us/li [...] 85%29.aspx
(edit: bon je suis arrivé ici via http://fr.openclassrooms.com/forum [...] e-84842948 ce qui explique que je n'ai pas fait gaffe à la date, excusez du déterrage, mais bon script plus simple)


Message édité par breizhbugs le 07-11-2013 à 20:43:50

---------------
Seul Google le sait...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software

  Activer/desactiver une carte réseau via un script sur WinXP [Résolu]

 

Sujets relatifs
reboot automatique de w2k au démarrage (résolu)Comment ajouter une sous-interface réseau avec Win2000 Serveur ?
Suppression de connexion réseauComment désactiver le plugin flash dans firefox
Help je suis perdu dans mon réseau !!!Problème avec carte asus wifi-g et drivers ralink
Formulaires sécurisés... problème... [Résolu]pb carte réseau + accès internet
Lancer une installation de soft depuis Script de connexion 
Plus de sujets relatifs à : Activer/desactiver une carte réseau via un script sur WinXP [Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR