1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| 'Déclaration, obligatoire
Dim wshNetwork
'Instanciation de la classe "NETWORK"
Set WshNetwork = WScript.CreateObject("WScript.Network" )
'Déclaration des constantes de groupe, elles doivent contenir le nom exact des groupes d'utilisateur AD
CONST DIRECTION_GROUP = "cn=Direction"
CONST COMPTA_GROUP = "cn=Compta"
CONST GENERAL_GROUP = "cn=General"
'Liste des lecteurs réseau à déconnecter, afin de ne pas déconnecter de lecteurs supplémentaires
CONST NETWORK_DRIVE_REMOVE = "T: N: U: P:"
'Ouverture de la classe Active Directory System Info afin de récupérer les infos de l'utilisateur connecté
Set ADSysInfo = CreateObject("ADSystemInfo" )
'Affichage du contenu UserName (on peux supprimer), on peux remarquer qu'il contiens toute une chaine de connexion
WScript.Echo "ADSysInfo.UserName renvoie toute une chaine de connexion :" & vbcrlf & vbcrlf & ADSysInfo.UserName
WScript.Echo "WshNetwork.UserName renvoie uniquement le nom d'utilisateur :" & vbcrlf & vbcrlf & WshNetwork.UserName
'Connexion à l'utilisateur ---CONNECTé--- via le LDAP (Annuaire)
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
'Récupération de la liste des groupes ("MemberOf" = "Membre de") de l'utilisateur
strGroups = LCase(Join(CurrentUser.MemberOf))
'Affichage des groupes de l'utilisateur (on peux supprimer)
WScript.Echo "Contenu de la variable strGroups, censée contenir la liste des groupes de l'utilisateur :" & vbcrlf & vbcrlf & strGroups
'On récupère la liste des Lecteurs Réseau connectés
set strNetDrives=WshNetwork.EnumNetworkDrives
'Passage en revue des lecteurs réseaux, afin d'éviter une erreur si le lecteur n'à jamais été connecté. (le voila le FOR héhé! )
For i = 0 to strNetDrives.Count - 1 Step 2
'On affiche la première ligne (Lettre lecteur) et la seconde ligne (nom de partage), d'ou un STEP 2, afin de faire 2 lignes par 2 lignes
'Pareil on peux virer la ligne
WScript.Echo "Lettre : " & strNetDrives.Item(i) & vbcrlf & "Partage : " & strNetDrives.Item(i+1)
'On supprime le lecteur réseau uniquement si on le trouve dans la chaine NETWORK_DRIVE_REMOVE (et de 1 IF)
If InStr(strNetDrives.Item(i),NETWORK_DRIVE_REMOVE) then
'On affiche la lettre du lecteur qu'on supprime.... pareil on peux virer la ligne après :p
WScript.Echo "Suppression du lecteur : " & strNetDrives.Item(i)
'On supprime le lecteur réseau
WshNetwork.RemoveNetworkDrive strNetDrives.Item(i)
End If
Next
'Si DansLaChaine StrGroups on trouve la valeur DIRECTION ou COMPTA ou GENERAL alors on agit! et de 1 IF ELSEIF!
If InStr (strGroups, DIRECTION_GROUP) Then
WScript.Echo "DIRECTION"
WshNetwork.MapNetworkDrive "T:", "\\SRV-PERSO\Commun"
WshNetwork.MapNetworkDrive "N:", "\\SRV-PERSO\Compta"
WshNetwork.MapNetworkDrive "U:", "\\SRV-PERSO\Direction"
WshNetwork.MapNetworkDrive "P:", "\\SRV-PERSO\USERS$\%Username%"
elseif InStr (strGroups, COMPTA_GROUP) Then
WScript.Echo "COMPTA"
WshNetwork.MapNetworkDrive "T:", "\\SRV-PERSo\Commun"
WshNetwork.MapNetworkDrive "N:", "\\SRV-PERSO\Compta"
WshNetwork.MapNetworkDrive "P:", "\\SRV-PERSO\USERS$\%Username%"
elseif InStr (strGroups, GENERAL_GROUP) Then
WScript.Echo "GENERAL"
WshNetwork.MapNetworkDrive "T:", "\\SRV-PERSo\Commun"
WshNetwork.MapNetworkDrive "P:", "\\SRV-PERSO\USERS$\%Username%"
End If
'Toujours finir le script par un Quit, sinon il reste en mémoire!
WScript.quit |
Partager