Projet

Général

Profil

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
Redmine Appliance - Powered by TurnKey Linux