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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [RESOLU] [VBS] recherche OU d'un utilisateur donné d'Active directory

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] [VBS] recherche OU d'un utilisateur donné d'Active directory

n°1305747
Sboubinett​e62
Posté le 15-02-2006 à 08:30:39  profilanswer
 

Bonjour,
 
Il me faudrait un script qui me permettre de connaître l'OU d'un utilisateur donné, si quelqu'un peut m'aider se serait sympa!  
 
j'ai essayé ce code :  
 

Citation :

Set objConnection = CreateObject("ADODB.Connection" )  
Set objCommand =   CreateObject("ADODB.Command" )  
objConnection.Provider = "ADsDSOObject"  
objConnection.Open "Active Directory Provider"  
 
Set objCOmmand.ActiveConnection = objConnection  
objCommand.CommandText = _  
  "Select ou from 'LDAP://DC=pdch,DC=fr'Where objectClass='user' and samAccountName='"& MonCompte  & "'"  
Set objRecordSet = objCommand.Execute  
objRecordSet.MoveFirst  
     
if objRecordSet.EOF=false then  
         wscript.echo objRecordSet.Fields("OU" ).Value  
end if


 
Je n'ai pas d'erreur mais il m'affiche null, pourquoi??  
 
je viens de trouver un morceau de code qui affiche l'OU de l'utilisateur courant ou de l'ordinateur mais comment l'adapter à mon cas ?  
 

Citation :

Set objADSysInfo = CreateObject("ADSystemInfo" )  
WScript.Echo "Current site name: " & objADSysInfo.SiteName


 
Pour l'instant j'ai trouvé une solution qui fonctionne mais qui ne me conviens pas forcément. Je parcours les OU une par une, puis je compare les utilisateurs un à un afin de voir si le nom d'utilisateur entré correspond a l'utilisateur.


Message édité par Sboubinette62 le 16-02-2006 à 15:13:02
mood
Publicité
Posté le 15-02-2006 à 08:30:39  profilanswer
 

n°1306924
pilosite
Posté le 16-02-2006 à 11:28:00  profilanswer
 

Salut !
 
le script suivant permet de retrouver le DistinguishedName de l'utilisateur (donc le chemin ldap complet contenant l'OU), il faut juste renseigner le nom de l'utilisateur comme argument.
 
' ---------
' script pour retrouver des paramètres spécifiques
' à l'utilisateur en partant de son login
' pas de droits spécifiques nécessaires au niveau AD
' --------
 
' récupération du login de l'utilisateur en arguemnt
 
set oArgs = wscript.arguments
usrLOG = oArgs(0)
 
' Recherche du login dans AD
' cette première section se connecte au contexte du domaine
Set objDSE = GetObject("LDAP://rootDSE" )
set oConnection = CreateObject("ADODB.Connection" )
oConnection.Provider = "ADsDSOObject"
oConnection.Open "ADs Provider"  
 
' ci dessous le filtre sur le login utilisateur  
sFilter = "(&(objectclass=user)(samaccountname=" & usrLOG & " ))"
 
' dans cette ligne, on défini les paramètres récupéré : ici  
 DistinguishedName
' c'est celle ci que vous pouvez modifier en fonction des paramètres ADSI à récupérer (paramètre avant subtree, séparé par des virgules)
 
sQuery = "<LDAP://" & objDSE.Get("defaultNamingContext" ) & ">;" & sFilter & ";distinguishedName;subtree"
Set oRecordSet = oConnection.Execute(sQuery)
 
' on inscrit le distinguishedName dans une variable, et voilà
usrDN = oRecordset.Fileds("distinguishedName" ).value
oConnection.Close
 
' affichage du distinguishedName pour la forme :
wscript.echo usrDN
 
j'espère que ça peut t'aider.


Message édité par pilosite le 16-02-2006 à 11:28:51
n°1307032
Sboubinett​e62
Posté le 16-02-2006 à 12:52:30  profilanswer
 

pilosite jte remercie je vais tester ça et c'est tout à fait ce que je cherchais!
ça marche super bien, c'est beaucoup plus rapide que ce que j'avais fait, c'est pile poil ce qui me fallais!
C'est toi qui a écris ce script?


Message édité par Sboubinette62 le 16-02-2006 à 14:18:47
n°1307662
pilosite
Posté le 17-02-2006 à 10:08:09  profilanswer
 

:jap: tant mieux! c'est effectivement la méthode la plus rapide que je connaisse pour l'interrogation AD, mais y a plus légé niveau code... par contre cette méthode te permet de rappatrier n'importe quel argument d'un objet, pas seulement le DistinguishedName,
 
suffit de rajouter le nom ADSi de l'argument dans la query séparés par des virgules :
 
sQuery = "<LDAP://" & objDSE.Get("defaultNamingContext" ) & ">;" & sFilter & ";distinguishedName,cn,Mail;subtree"  
 
et en dessous d'inscrire l'argument dans une variable du style :
 
usrMail = oRecordset.Fileds("Mail" ).value  
 
@+


---------------
Envie de scripting ? Lisez donc "Scripting Windows" aux Editions Eyrolles ! tout pour apprendre le scripting orienté infrastructure Microsoft, en français dans les textes et exemples.  http://www.eyrolles.com/Informatiq [...] 212116922/
n°1307669
Sboubinett​e62
Posté le 17-02-2006 à 10:15:40  profilanswer
 

c'est cool!
justement je voulais te demander comment ça marche vraiment le filtre, la syntaxe en gros?

n°1307688
pilosite
Posté le 17-02-2006 à 10:27:22  profilanswer
 

et bah voilà, tu as la syntaxe :)
 
après, le truc c'est connaitre les noms exacts des différents arguments des objets AD. A ce titre je vous conseil ce site internet:
 
http://www.dx21.com/SCRIPTING/ADSI/INDEX.ASP
 
il fourni l'ensemble des paramètres ADSI des objets utilisateurs et ordinateurs, avec des exemples de scripts très complet, un must pour le scripting ADSI


---------------
Envie de scripting ? Lisez donc "Scripting Windows" aux Editions Eyrolles ! tout pour apprendre le scripting orienté infrastructure Microsoft, en français dans les textes et exemples.  http://www.eyrolles.com/Informatiq [...] 212116922/

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

  [RESOLU] [VBS] recherche OU d'un utilisateur donné d'Active directory

 

Sujets relatifs
recherche programmateur RPG[Résolu] Probleme listbox + onclick
[RESOLU]probleme avec zoom d'image inspiré des portes coulissantes[VBScript] [RESOLU] trouver le chemin ldap
[VBScript] [RESOLU] Checksum, vérifier l'intégrité d'un fichier vbs[JSP][Résolu] Response already commited
[RESOLU]pb pour recuperer le titre d'un pagesql et acess [résolu]
petite question conne (j'ai cherché ss succes la réponse) [RESOLU][RESOLU]probleme curseur main
Plus de sujets relatifs à : [RESOLU] [VBS] recherche OU d'un utilisateur donné d'Active directory


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