Montage lecteur réseau par GPO en fonction de votre groupe
Par Romain Tiennot le lundi 31 janvier 2011, 15:59 - VBS - Lien permanent
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