Bonjour à tous,

J’ai une petite question concernant un script visant à désactiver le Wifi lorsqu’un PC Win XP reconnait un connexion filaire.

J’ai testé mon script, tout se déroule bien jusqu’à l’avant avant dernière ligne, où un wscript.echo m’écrit : « Disable connexion sans fil » lorsque je suis connecté à un réseau wifi et que je me connecte à un réseau via un cable.
La commande objAction.DoIt n’a aucun effet.


Pourriez vous m’aider ?

Merci,
OL

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
Const HKEY_LOCAL_MACHINE = &H80000002 
Set objShell = CreateObject("WScript.Shell") 
 
Set objWMIService_wmi = GetObject("winmgmts:\\.\root\wmi") 
Set colMonitoredEvents = objWMIService_wmi.ExecNotificationQuery("Select * from MSNdis_StatusMediaConnect") 
 
 
Do While True 
    Set strLatestEvent = colMonitoredEvents.NextEvent 
		Wscript.Echo "A network connection has been disconnected: " & strLatestEvent.InstanceName 
    nicdesc = strLatestEvent.InstanceName 
   Set objWMIService_cimv2 = GetObject("winmgmts:\\.\root\cimv2") 
   Set colNics = objWMIService_cimv2.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where ipEnabled = True") 
   'Determine nic which trggered the event 
 
   For Each objItem in colNics 
      If objItem.description = nicdesc & " - Miniport d'ordonnancement de paquets" then 
         trig_macaddress = objItem.MacAddress
          trig_nicguid = objItem.SettingID 
         trig_strKeyPath = "HKLM\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & trig_nicguid & "\Connection\MediaSubType" 
		 trig_subtype = objShell.RegRead(trig_strKeyPath) 
         Exit For 
      End If
   Next
 
   'If the nic was wired then find wireless nics and disable them 
   If trig_subtype = 1 then 
      For Each objItem in colNics 
         nicguid = objItem.SettingID 
         strKeyPath = "HKLM\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & nicguid & "\Connection\MediaSubType" 
         subtype = "" 
         on error resume next 
         subtype = objShell.RegRead(strKeyPath) 
         If err.number <> 0 then 
            subtype = 0 
            err.clear 
            on error goto 0 
         End If 
         If (subtype = 2) then 
            wireless_macaddress = objItem.MacAddress 
            set colAdapters = objWMIService_cimv2.Execquery("Select * from Win32_NetworkAdapter where macaddress ='" & wireless_macaddress & "'") 
            For Each Adapter in colAdapters 
               constatus = Adapter.NetConnectionStatus 
               If constatus <> "" then 
                  wscript.echo SetConnState(Adapter.NetConnectionID,0) 
                End If 
            Next 
         End If 
      Next 
   End If 
Loop 
 
Function SetConnState(strConn,constate)
Const CONTROL_PANEL = &H3& 
Set objShell = CreateObject("Shell.Application") 
Set objCP = objShell.Namespace(CONTROL_PANEL) 
 
If connstate = 0 then connAction = "Disa&ble" 
If connstate = 1 then connAction = "En&able" 
 
Set colNetwork = Nothing 
For Each clsConn in objCP.Items 
   If clsConn.Name = "Connexions réseau" Then 
      Set colNetwork = clsConn.getfolder 
      Exit For 
   End If 
Next 
 
If colNetwork is Nothing Then 
   WScript.Echo "Network folder not found" 
   SetConnState = False 
   Exit Function 
End If 
 
Set clsLANConn = Nothing 
For Each clsConn in colNetwork.Items 
   If Instr(LCase(clsConn.name),LCase(strConn)) Then 
      Set clsLANConn = clsConn 
      Exit For 
   End If 
Next 
 
If clsLANConn is Nothing Then 
   WScript.Echo "Network Connection not found" 
   SetConnState = False 
   Exit Function 
End If 
 
 
bEnabled = True 
Set objEnable = Nothing 
Set objDisable = Nothing
For Each clsVerb in clsLANConn.verbs 
   If clsVerb.name = connAction Then 
      Set objAction = clsVerb 
   End If 
Next 
 
wscript.echo REPLACE(connAction,"&","") & " " & strConn & "..." 
objAction.DoIt 
End Function