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 | 
Partager