Lors de la mise en place d’un annuaire Active Directory, l’une des premières chose que l’on souhaite faire, c’est de mapper automatiquement un ou plusieurs lecteurs réseaux à l’ouverture de session des utilisateurs.
Pour rappel, un lecteur réseau est un partage présenté à un poste/utilisateur sous la forme d’une lettre comme un disque dur/clef usb….
Dans ce tutoriel, je vais vous présenter deux façons de mapper un lecteur réseau, par GPO et à l’aide d’un script qui doit être exécuté à l’ouverture de session, donc à l’aide d’une stratégie de groupe également.
À travers ce tutoriel, nous allons voir que le résultat est identique.
Le mappage des lecteurs réseaux par stratégie de groupe présente pour ma part plusieurs avantages :
- Elles sont actualisées régulièrement par les postes clients et il est possible de forcer la mise à jour par la commande
gpupdate
. - Utilisation d’une console graphique
- Beaucoup d’options de filtrage (même si pas script on peut faire la même chose).
- Enregistrement des événements dans l’observateur Windows qui permet un débogage rapide.
Le script d’ouverture de session est certes configuré dans une stratégie de groupe, mais la commande gpupdate ne permet pas de rejouer le script, il faut impérativement fermer puis ouvrir de nouveau la session pour l’appliquer de nouveau le script et avoir le nouveau lecteur réseau ou la modification de celui-ci.
Prérequis :
- Être dans un environnement Active Directory.
- Avoir un dossier partagé accessible aux utilisateurs à qui celui-ci va être mappé.
Mappage de lecteur réseau par GPO – Stratégie de groupe
1. Ouvrir l’éditeur de stratégie de groupe sur un contrôleur de domaine.
2. Créer une nouvelle stratégie, faire un clic droit sur le nom domaine 1 ou sur une unité d’organisation et cliquer sur Créer un objet GPO dans ce domaine, et lier ici 2.
3. Donner un nom avec stratégie et cliquer sur OK 1.
4. Faire un clic droit sur la stratégie 1 et cliquer sur Modifier 2 pour ouvrir l’éditeur.
5. Aller sur Configuration utilisateur / Préférences / Paramètres Windows et double cliquer sur Mappages de lecteurs 1.
6. Faire un clic droit Nouveau 1 / Lecteur mappé 2.
7. Remplir le formulaire :
- 1 Saisir l’emplacement du partage réseau
- 2 Indiquer la lettre utilisée
- 3 Appliquer
- 4 OK
- A et B pour libeller le lecteur réseau
8. Le lecteur 1 doit être visible dans Mappages de lecteurs.
9. Résumé de la GPO, par défaut le lecteur est mappé à tous les utilisateurs.
Limiter le mappage du lecteur réseau à un groupe
Dans cette partie nous allons voir comment limiter le mappage à un groupe utilisateur à l’aide du Ciblage au niveau de l’élément.
Il est aussi possible de limiter l’exécution de la stratégie au niveau du filtrage de sécurité, ce qui implique de faire une stratégie par lecteur.
Le ciblage au niveau de l’élément de limite pas les droits sur le partage, il faut tout même paramétrer les droits NTFS sur le dossier.
1. Éditer votre lecteur clic droit dessus 1 et Propriétés.
2. Aller sur l’onglet Commun 1, cocher « Ciblage au niveau de l’élément » 2 et cliquer sur Ciblage 3.
3. Cliquer sur Nouvel élément 1 et sélectionner Groupe de sécurité 2.
4. Ajouter votre groupe 1 et cliquer sur OK 2.
5. C’est fini, le lecteur P sera mappé seulement aux utilisateurs étant dans le groupe Grp_Partage_RW. Si vous retourner sur l’aperçu des paramètres de la stratégie, vous pouvez voir les éléments du ciblage 1.
Script pour mapper un lecteur réseau
Avertissement
Dans les prochaines version de Windows 11, le langage VBS va devenir une fonctionnalité facultative car le langage VBS est maintenant déprécié.
Vous trouverez dans l’article suivant : Script d’ouverture de session (Logon Script) en PowerShell, un exemple de script écrit en PowerShell.
Source : Resources for deprecated features
1. Créer un nouveau fichier qui doit avoir l’extension vbs.
2. Editer le fichier (Notepad++, bloc notes…) et ajoute les codes ci-dessous :
' En cas d erreur le script continue
On error resume next
' Declaration des variables
Dim WshNetwork
' Declaration des objets
Set WshNetwork = WScript.CreateObject("WScript.Network")
' Mappage du lecteur P
WshNetwork.MapNetworkDrive "P:", "\\LAB-AD1\partage", true
3. Ajouter le script à l’ouverture de session par stratégie de groupe pour effectuer le mappage du lecteur réseau.
Limiter le mappage du lecteur à un groupe par script
Comme pour la GPO, nous allons maintenant modifier le script pour limiter le mappage lecteur réseau au groupe Grp_partage_RW.
1. Éditer le fichier :
'En cas d erreur le script continue
On error resume next
' Declaration des variables
Dim WshNetwork,oShell
' Declaration des objets
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oShell = CreateObject("WScript.Shell")
' Mappage du lecteur P
If isMember("Grp_Partage_RW") Then
WshNetwork.MapNetworkDrive "P:", "\\LAB-AD1\partage", true
End If
'#####################################################
' Functions secondaires
'#####################################################
Function IsMember(groupName)
If IsEmpty(groupListD) then
Set groupListD = CreateObject("Scripting.Dictionary")
groupListD.CompareMode = 1
ADSPath = EnvString("userdomain") & "/" & EnvString("username")
Set userPath = GetObject("WinNT://" & ADSPath & ",user")
For Each listGroup in userPath.Groups
groupListD.Add listGroup.Name, "-"
Next
End if
IsMember = CBool(groupListD.Exists(groupName))
End Function
Function EnvString(variable)
variable = "%" & variable & "%"
EnvString = oShell.ExpandEnvironmentStrings(variable)
End Function
Comment vous pouvez le voir, on a ajouté deux fonctions à la fin du code, qui permettent la vérification de l’appartenance au groupe de l’utilisateur connecté. Le mappage du lecteur est maintenant soumit à condition (if).
Conclusion
GPO ou script, les deux solutions fonctionnent tout dépend ce que vous préférez. Si vous optez pour le script, commenter bien votre code.