Il s'agit d'un script en VBS qui doit etre déployé durant l'ouverture de session de l'utilisateur par GPO. Une fois le script déployé, il va vérifier dans quel groupe le compte fait parti afin de monter les lecteurs réseau auquel vous avez droit.

Vous trouverez en pièce jointe le script en question. Vous pouvez l'éditer avec le blocnote ou encore Notepad++ qui rajotuera un code couleur pour vous faciliter la tache. J'ai réalisé le même script avec différents langages comme Autoit, PowerShell pour les systemes Seven et Vista ou encore en DOS.

Attention, pour que le script en VBS fonctionne par GPO sous Windows Seven ou Vista, merci de vous rendre a l'article nommé "Désactiver User Account Control sous Seven et Vista".

Option Explicit
Dim network,fso,WshShell,UserObj, Shell, UserGroups, GroupObj
Set wshshell = CreateObject("WScript.Shell")
Set network = Wscript.CreateObject("WScript.Network")
Set fso = CreateObject("Scripting.FileSystemObject")
Set Shell = CreateObject("WScript.Shell")

'================================================================================
'
'			Déclaration des variables
'			
'================================================================================

Dim cheminRepPerso
Dim cheminRepAdmin
Dim cheminRepDir
Dim cheminRepProd1
Dim cheminRepProd2
Dim cheminRepTech
Dim lettreLecteurPerso
Dim lettreLecteurAdmin
Dim lettreLecteurDir
Dim lettreLecteurProd1
Dim lettreLecteurProd2
Dim lettreLecteurTech
Dim srv
Dim Ping

lettreLecteurPerso = "U:"
cheminRepPerso = "\\serveur\commun"
lettreLecteurAdmin = "R:"
cheminRepAdmin = "\\serveur\Administration"
lettreLecteurDir = "S:"
cheminRepDir = "\\serveur\Direction"
lettreLecteurProd1 = "T:"
cheminRepProd1 = "\\serveur\Production1"
lettreLecteurProd2 = "V:"
cheminRepProd2 = "\\serveur\Production2"
lettreLecteurTech = "W:"
cheminRepTech = "\\serveur\technique$"
srv = "serveur"

'================================================================================
'
'			Test reponse serveur
'			
'================================================================================

 
ping = WshShell.Run("Ping.exe -n 1 "& srv, 0, TRUE)
If ping Then
		msgbox("Désolé, aucun serveur n'est disponible pour procéder à l'installation des lecteurs réseaux(s)")
		WScript.Quit
	Else
		lecteur()
End If

'================================================================================
'
'			Fonction Lecteur Réseaux
'			
'================================================================================


Function lecteur()

Set UserObj = GetObject("WinNT://domaine/" & network.username)
WshShell.Run"net use * /DELETE /Y", 0, TRUE
network.MapNetworkDrive lettreLecteurPerso, cheminRepPerso

UserGroups=""
For Each GroupObj In UserObj.Groups 
  UserGroups=UserGroups & "[" & GroupObj.Name & "]" 
Next

	if InGroup("Administration") then
		network.MapNetworkDrive lettreLecteurAdmin, cheminRepAdmin
		
	end if


	if InGroup("Direction") then
		network.MapNetworkDrive lettreLecteurTech, cheminRepTech
		network.MapNetworkDrive lettreLecteurProd2, cheminRepProd2
		network.MapNetworkDrive lettreLecteurProd1, cheminRepProd1
		network.MapNetworkDrive lettreLecteurDir, cheminRepDir
		network.MapNetworkDrive lettreLecteurAdmin, cheminRepAdmin
	end if


	if InGroup("Technique") then
		network.MapNetworkDrive lettreLecteurTech, cheminRepTech
		network.MapNetworkDrive lettreLecteurProd2, cheminRepProd2
		network.MapNetworkDrive lettreLecteurProd1, cheminRepProd1
		network.MapNetworkDrive lettreLecteurDir, cheminRepDir
		network.MapNetworkDrive lettreLecteurAdmin, cheminRepAdmin
	end if

	if InGroup("Production1") then
		network.MapNetworkDrive lettreLecteurProd1, cheminRepProd1
	end if


	if InGroup("Production2") then
		network.MapNetworkDrive lettreLecteurProd2, cheminRepProd2
	end if
end Function

'================================================================================
'
'			Verification des groupes
'			
'================================================================================

Function InGroup(strGroup)
   InGroup=False
   If InStr(UserGroups,"[" & strGroup & "]") Then
         InGroup=True
   End If
End Function

A bientôt, Romain