'Basculement d'une connexion DHCP ( Vers box Internet ) vers une passerelle différente (VPN) 'Christophe Caron 'Version 1.0 24/12/2016 'www.caron.ws 2016 '****** Paramètres ******* AdIP="" 'Variable pour Votre Adresse IP AdDNS1="8.8.8.8" 'Adresse DNS 1 AdDNS2="8.8.8.4" 'Adresse DNS 2 AdPasserelle="192.168.1.81" 'Adresse de votre passerelle VPN AdMasque="255.255.255.0" 'Masque réseau Typecarte="%less%" 'Pour votre carte wifi %less% 'Programme principal If WScript.Arguments.length =0 Then Set objShell = CreateObject("Shell.Application") objShell.ShellExecute "wscript.exe", Chr(34) & _ WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1 'Passage en mode administrateur Else Reponse = MsgBox("Voulez-vous changer de mode?"&chr(10)&chr(13)&chr(10)&chr(13)&"Oui Mode DCHP BOX"&chr(10)&chr(13)&_ "Non Mode IP FIXE VPN", vbQuestion + vbYesNoCancel) 'Choix du mode de connexion If Reponse = vbNo Then 'Réponse non call myip() 'Lecture de l'adresse IP call chgadrss() 'Passage en IP FIXE + Changement de passerelle VPN End If If Reponse = vbYes Then 'Réponse 2 oui call mode_dhcp() 'On va dans le sous-programme DHCP MsgBox "Mode DHCP BOX", vbInformation 'Message DHCP BOX End If End If 'Sous programme Lecture adresse IP private sub myip() On error resume next set IPConfigSet = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & "").ExecQuery _ ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Description like """&Typecarte&"""") 'Choix de la carte Ethernet If Err.Number<>0 Then wscript.echo " Erreur de lecture de l'adresse IP" Else for each IPConfig in IPConfigSet AdIP=IPConfig.IPAddress(0) ' Lecture de l'adresse IP Next End If end sub 'Sous programme Changement adresse IP + Passerelle + DNS private sub chgadrss() strComputer = "." 'Recherche sur cet ordinateur Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration where Description like """&Typecarte&"""") 'Choix de la carte Ethernet strIPAddress = Array(AdIP) 'On attribue l'adresse strSubnetMask = Array(AdMasque) 'On attribue le masque réseau strGateway = Array(AdPasserelle) 'On attribue la passerelle strDNSServers = Array(AdDNS1,AdDNS2) 'On attribue le DNS strGatewayMetric = Array(1) 'On attribue le métrique For Each objNetAdapter in colNetAdapters 'Pour la carte réseau errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask) 'Attribution d'une erreur et Attribution de l'IP et du masque réseau errPoub = objNetAdapter.SetGateways(strGateway, strGatewaymetric) 'Attribution des valeurs métrique et pour la passerelle errPoub = objNetAdapter.SetDNSServerSearchOrder(strDNSServers) 'Attribution du DNS If errEnable = 0 Then 'Si pas d'erreur WScript.Echo "IP FIXE VALIDE " & AdIP 'Message de validation avec votre IP. Else 'sinon WScript.Echo "ERREUR IP FIXE" 'Message d'erreur End If next end sub 'Sous programme passage en mode BOX DHCP private sub mode_dhcp() strComputer = "." 'Recherche sur cet ordinateur Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration where Description like """&Typecarte&"""") 'Choix de la carte Ethernet For Each objNetAdapter In colNetAdapters 'Pour la carte réseau errEnable = objNetAdapter.EnableDHCP() 'Attribution d'une erreur et activation du DHCP arrDNSServers = Array() 'Attribution de la variable DNS vide mode auto objNetAdapter.SetDNSServerSearchOrder(arrDNSServers) 'Attribution des valeurs de DNS If errEnable <> 0 Then 'si erreur WScript.Echo "ERREUR DHCP" 'message d'erreur End If Next end sub