Le Logon Script s’adapte aux utilisateurs nomades

Que diriez vous d’un fichier Logon Script qui tient compte de la localisation géographique de l’utilisateur afin d’exécuter des commandes adaptées au site sur lequel il est situé?

Description

Nous avons vu dans un article précédent qu’il était possible d’adopter une stratégie de Logon Script selon l’appartenance d’un utilisateur à un groupe d’accès. Cette méthode est tout a fait adaptée à la gestion des accès aux partages par exemple.

Ainsi Patrick, comptable et nomade, aura toujours accès à son lecteur réseau dédié à la compatibilité car il est bien membre de son groupe « Comptable ».

Mais quand est il s’il souhaite imprimer ou encore accéder à Internet ? Ne serait il pas judicieux de lui mapper automatiquement une imprimante et de lui spécifier un serveur proxy correspondant à son site de connexion ?

La solution

C’est pour résoudre cette problématique liée à la localisation d’un utilisateur nomade que je vous propose une technique qui se base sur le réseau IP du site depuis lequel l’utilisateur se connecte.

Imaginons 2 agences d’une même société, même si elles sont dans un même réseau, elles auront certainement un sous réseau différent, par exemple 192.168.14.x et 192.168.15.x

Et bien il est possible en VBScript d’établir des conditions qui vont se baser sur ces adresses !

Ainsi à l’exécution du script l’adresse IP de Patrick, 192.168.15.25, va être splittée en 4 dans un tableau, le séparateur étant le « . »

Vous avez compris que c’est le troisième champ de l’adresse (ici 14 ou 15) qui va différencier les 2 agences, c’est donc la dessus que tout va se jouer ;-).

Le meilleur VPN au monde

Un exemple !

Dans la code suivant imaginons que Patrick s’est vu affecté l’adresse IP 192.168.15.25. Tout d’abord cela signifie qu’il est localisé sur le site ayant 192.168.15.x comme sous-réseau. Patrick va donc répondre à la condition correspondant  au « case = 15 » du code suivant. L’imprimante PRINTSHARE2 va être mapper sur sa machine et le proxy 192.168.15.200 va lui être attribuer.

Le code

On Error Resume Next
Dim ArrayIP
strComputer = "."
Set objNetwork = WScript.CreateObject("Wscript.Network")
Set objWMIService = GetObject( _
    "winmgmts:\\" & strComputer & "\root\cimv2")
Set IPConfigSet = objWMIService.ExecQuery _
    ("Select IPAddress from Win32_NetworkAdapterConfiguration Where IPEnabled = True")

For Each IPConfig In IPConfigSet
  ArrayIP = Split (IPConfig.IPAddress(0), ".")
Next

If ArrayIP(0)=192 Then

	If ArrayIP(1)=168 Then

		Select Case ArrayIP(2)

Case "14"

        objNetwork.AddWindowsPrinterConnection("\\SERVEUR1\PRINTERSHARE1")
        objNetwork.SetDefaultPrinter("\\SERVEUR1\PRINTERSHARE1")
	WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\AutoConfigURL", "http://192.168.14.200/web1.pac"
        WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", "00000000"
        WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyOverride", ""

Case "15"
	objNetwork.AddWindowsPrinterConnection("\\SERVEUR2\PRINTERSHARE2")
        objNetwork.SetDefaultPrinter("\\SERVEUR2\PRINTERSHARE2")
	WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\AutoConfigURL", "http://192.168.15.200/web2.pac"
        WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", "00000000"
        WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyOverride", ""
		End Select

  End If

End If

Laisser un commentaire