Création d'une interface loopback sous windows en vbscript¶
' script d'installation et de configuration (de base) d'une interface reseau loopback
' (c) 2011 - Eric Seigne <eric.seigne@ryxeo.com> - GPL3
' inspiration et sources de dev
' http://blogs.technet.com/b/heyscriptingguy/archive/2005/05/11/how-can-i-rename-a-local-area-connection.aspx
' necessite le devcon.exe qui est fournis par microsoft (non libre), en attendant de faire tout ça en C++ depuis l'appli
Const NETWORK_CONNECTIONS = &H31&
Set WshShell = Wscript.CreateObject("WScript.shell")
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(NETWORK_CONNECTIONS)
' on cherche pour voir si on a deja une carte abuledu d'installée (mise à jour du logiciel)
Set listeCartes = objFolder.Items
For Each carte in listeCartes
'WScript.Echo "Carte : " & carte.Name
If carte.Name = "AbulEdu mon Ecole a distance" Then
'WScript.Echo "Carte AbulEdu déjà installée"
WScript.quit 0
End If
Next
' on compte le nombre d'interfaces reseaux avant
nbCartesAvantInstall = listeCartes.Count
set dir = createobject("WScript.Shell")
dir.currentdirectory = Replace(WScript.ScriptFullName, WScript.ScriptName, "")
set dir = nothing
' on ajoute une interface loopback
WshShell.run "devcon.exe install %windir%\inf\netloop.inf *msloop"
' on fait une petite pause le temps que windows ingurgite le driver etc.
WScript.Sleep(10000)
' on compte le nombre d'interfaces reseaux apres
Set objShellApres = CreateObject("Shell.Application")
Set objFolderApres = objShellApres.Namespace(NETWORK_CONNECTIONS)
Set listeCartesApres = objFolderApres.Items
nbCartesApresInstall = listeCartesApres.Count
'WScript.Echo "Nombre d'interfaces avant : " & nbCartesAvantInstall & " Nombre d'interfaces apres : " & nbCartesApresInstall
Set LastOne = listeCartesApres.Item(nbCartesApresInstall-1)
'WScript.Echo "Nom de la deniere interface : " & LastOne.Name
' petite tentative pour essayer de ne pas planter la carte principale :)
If LastOne.Name <> "Connexion au réseau local" Then
LastOne.Name = "AbulEdu mon Ecole a distance"
' configuration de l'ip fixe sur cette interface
WshShell.run "netsh interface ip set address name=" & Chr(34) & LastOne.Name & Chr(34) & " source=static 10.194.125.8 255.255.255.0"
End If