Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2459 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS]Tester l'appartenance d'un utilisateur à un groupe AD

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBS]Tester l'appartenance d'un utilisateur à un groupe AD

n°2075249
tuxbleu
renie ses origines
Posté le 11-05-2011 à 12:40:58  profilanswer
 

Bonjour
 
En script d'ouverture de session pour mes utilisateurs, j'ai script vbs qui monte les lecteurs réseaux des utilisateurs.
 
J'ai un lecteur que je dois monter en fonction de l'appartenance des utilisateurs à un groupe AD.
Vous avez une idée de comment je peux tester l'appartenance de l'utilisateur qui execute le script à un group AD ?
 
J'arrive à listes les groupes de mon AD, mais pas à lister les utilisateurs de ces groupes.
L'approche ne serait-elle pas de lister les groupes auxquels appartient un utilisateur ? Mais je ne sais pas comment faire.
 
Je vous met mons script, là où j'en suis :  
 

Code :
  1. On Error Resume Next
  2. Const ADS_SCOPE_SUBTREE = 1
  3. Set objConnection = CreateObject("ADODB.Connection" )
  4. Set objCommand =   CreateObject("ADODB.Command" )
  5. objConnection.Provider = "ADsDSOObject"
  6. objConnection.Open "Active Directory Provider"
  7. Set objCommand.ActiveConnection = objConnection
  8. objCommand.Properties("Page Size" ) = 1000
  9. objCommand.Properties("Searchscope" ) = ADS_SCOPE_SUBTREE 
  10. objCommand.CommandText = "SELECT distinguishedName FROM 'LDAP://OU=mesgroupes,dc=domaine,dc=fr' WHERE objectCategory='user' "
  11. Set objRecordSet = objCommand.Execute
  12. objRecordSet.MoveFirst
  13. Do Until objRecordSet.EOF
  14.     Wscript.Echo objRecordSet.Fields("distinguishedName" ).Value
  15.     objRecordSet.MoveNext
  16. Loop


 
Merci de vos avis  :jap:


Message édité par tuxbleu le 11-05-2011 à 12:41:16

---------------
Mon topic de vente - Mon feed-back
mood
Publicité
Posté le 11-05-2011 à 12:40:58  profilanswer
 

n°2075798
SuppotDeSa​Tante
Aka dje69r
Posté le 13-05-2011 à 15:05:27  profilanswer
 

Citation :

Dim objRootLDAP, objGroup, objUser, objOU, objmemberOf  
Dim strOU, strUser, strDNSDomain, strLDAP, List, objADSysInfo,arr,intlength,intNamelength,strGroupName  
 
' Commands to bind to AD  
Set objRootLDAP = GetObject("LDAP://RootDSE" )  
Set objNetwork = CreateObject("Wscript.Network" )  
 
'trouver le DN de l'utilisateur  
Set objADSysInfo = CreateObject("ADSystemInfo" )  
strUser = objADSysInfo.UserName  
Set objUser = GetObject("LDAP://" & strUser)  
 
 
' Extract a list of Groups from memberOf  
objmemberOf  = objUser.GetEx("memberOf" )  
For Each objGroup in objmemberOf  
     List = List & objGroup & vbCr  
     arr=Split(List,"," )  
     intlength=Len(arr(0))  
     intNamelength=intlength - 3  
Next  
strGroupName= Right(arr(0), intNameLength)  
 
 
'Connecter un lecteur en fonction du groupe  
Select Case strGroupName  
        Case "Etudiant"  
            objNetwork.MapNetworkDrive "X:", "\\Serveur\Partage"  
         
        Case "Personnel"  
            objNetwork.MapNetworkDrive "X:", "\\Serveur\Partage"  
 
End Select  
     
WScript.Quit  


---------------
Soyez malin, louez entre voisins !
n°2076115
tuxbleu
renie ses origines
Posté le 16-05-2011 à 10:35:14  profilanswer
 

J'étais arrivé à un code comme celui-ci :
 

Code :
  1. Option Explicit
  2. 'on error resume next
  3. Dim objNetwork, objUser, CurrentUser, WshShell
  4. Dim strGroup, groupes, x, groupes2, x2
  5. 'Creation des objets
  6. Set WshShell = CreateObject("WScript.Shell" )
  7. Set objNetwork = CreateObject("WScript.Network" )
  8. Set objUser = CreateObject("ADSystemInfo" )
  9. Set CurrentUser = GetObject("LDAP://" & objUser.UserName)
  10. strGroup = Lcase(Join(CurrentUser.MemberOf,"###" ))
  11. groupes = Split(strGroup,"###" )
  12. for each x in (groupes)
  13. groupes2 = Split(x,",",2)
  14. wscript.echo groupes2(0)
  15. next


---------------
Mon topic de vente - Mon feed-back
n°2076126
tuxbleu
renie ses origines
Posté le 16-05-2011 à 10:53:58  profilanswer
 

SuppotDeSaTante a écrit :

Citation :

Dim objRootLDAP, objGroup, objUser, objOU, objmemberOf  
Dim strOU, strUser, strDNSDomain, strLDAP, List, objADSysInfo,arr,intlength,intNamelength,strGroupName  
 
' Commands to bind to AD  
Set objRootLDAP = GetObject("LDAP://RootDSE" )  
Set objNetwork = CreateObject("Wscript.Network" )  
 
'trouver le DN de l'utilisateur  
Set objADSysInfo = CreateObject("ADSystemInfo" )  
strUser = objADSysInfo.UserName  
Set objUser = GetObject("LDAP://" & strUser)  
 
 
' Extract a list of Groups from memberOf  
objmemberOf  = objUser.GetEx("memberOf" )  
For Each objGroup in objmemberOf  
     List = List & objGroup & vbCr  
     arr=Split(List,"," )  
     intlength=Len(arr(0))  
     intNamelength=intlength - 3  
Next  
strGroupName= Right(arr(0), intNameLength)  
 
 
'Connecter un lecteur en fonction du groupe  
Select Case strGroupName  
        Case "Etudiant"  
            objNetwork.MapNetworkDrive "X:", "\\Serveur\Partage"  
         
        Case "Personnel"  
            objNetwork.MapNetworkDrive "X:", "\\Serveur\Partage"  
 
End Select  
     
WScript.Quit  



 
J'imagine qu'il me reste à boucler sur tous les éléments de "arr" pour avoir la liste de tous mes groupes ?


---------------
Mon topic de vente - Mon feed-back

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS]Tester l'appartenance d'un utilisateur à un groupe AD

 

Sujets relatifs
Utilisateur universel[RESOLU] VBS - Modification d'une clé REG_BINARY
[RESOLU] Net Time en VBS[RESOLU ] Commande For pour VBS
[VBS] Recherche dossiers[SetupProject] Comment tester la présence du SP1 d'office 2007 ?
[VBS] ExcelLes triggers: tester si les insertions n'ont pas dépassé une limite
Plus de sujets relatifs à : [VBS]Tester l'appartenance d'un utilisateur à un groupe AD


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR