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