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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Résolu] [Powershell] [LDAP] un Search sur une sous-OU ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] [Powershell] [LDAP] un Search sur une sous-OU ?

n°1957619
ZeBix
edit > preview
Posté le 13-01-2010 à 17:02:10  profilanswer
 

Bonjour à tous,  
 
A l'aide d'un script Powershell, je voudrais vérifier si un ordinateur se trouve dans une OU spécifique dans mon organisation Active Directory.
 
Voici le script (simplifié) qui vérifie si l'ordinateur se trouve dans Active Directory tout court (sans prendre l'OU en compte) :  
 

Code :
  1. $rootOU = [ADSI]("LDAP://DC=mysite,DC=com" )
  2. $computersOU = [ADSI]("LDAP://OU=Computers,OU=MyORG,DC=mysite,DC=com" )
  3.  
  4. $searcherLDAP = New-Object System.DirectoryServices.DirectorySearcher
  5. $searcherLDAP.SearchScope = "Subtree"
  6. $searcherLDAP.SearchRoot = $rootOU
  7.  
  8. $testComputer = "MyPC"
  9.  
  10. $searcherLDAP.Filter = ("(&(objectClass=computer)(name=" + $testComputer + " ))" )
  11. $resultLDAP = $searcherLDAP.FindOne()  #retourne null s'il ne trouve rien
  12.         
  13. if ($resultLDAP)
  14. { echo " $testComputer FOUND !"
  15. }
  16. else
  17. { echo " $testComputer NOT FOUND!"
  18. }

Notes :  
- L'OU "Computers" est "enfant" d'une OU "MyORG", je ne peux pas changer ça.
- Le PC se trouve dans l'OU Computers en question.
- Et le script fonctionne et me retourne bien  "MyPC FOUND!", tout va bien.
 
Mais, si je change, dans le code ci-dessus, les deux lignes suivantes :  

Code :
  1. $searcherLDAP.SearchScope = "Base"
  2. $searcherLDAP.SearchRoot = $computersOU

, le résultat devient "MyPC NOT FOUND!"
 
- Pour le SearchScope, je pense que le paramètre est bon (source) : "Base" permet de se limiter à une OU en particulier.
- Pour le SearchRoot, là je pense que la syntaxe de $computersOU est la bonne (d'abord le child, puis le parent, puis les DC dans le bon ordre) mais je suppose que le bât doit blesser à cet endroit.
 
Quelqu'un a une idée ?  :cry:


Message édité par ZeBix le 14-01-2010 à 14:46:49
mood
Publicité
Posté le 13-01-2010 à 17:02:10  profilanswer
 

n°1957913
ZeBix
edit > preview
Posté le 14-01-2010 à 14:46:32  profilanswer
 

Trouvé via une connaissance au bureau :)
 

Code :
  1. $searcherLDAP.SearchScope = "OneLevel"


 
J'avais vu cette option dans la doc que je link ci-dessus, mais je n'avais pas bien compris la définition.  En fait "Base" limite la recherche à l'OU elle-même (ici : "Computers" ), c'est-à-dire l'objet OU (me demande bien ce qu'on peut faire avec ... aller chercher ses propriétés ou sa sécurité peut-être)
 
OneLevel va regarder les enfants directs de cet objet, c'est ce que je voulais :)
 
Case closed :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Résolu] [Powershell] [LDAP] un Search sur une sous-OU ?

 

Sujets relatifs
[résolu]comment faire pour que les cell de 2 tables ont la même taille[résolu] Police qui s'affiche différemment selon les 2 navigateurs
[résolu] Probleme alignement menu sous Firefox[Resolu] Génération de projet Visual Studio avec CMake
[Résolu] Word macro qui ouvre un documentmot de passe enregistré[Résolu]
[Python] [Résolu] Variables globales[Résolu] mise en page xsl
[Python] [Résolu] Liste[RESOLU] Ascenseur qui descend et qui s'arrete besoin d'aide
Plus de sujets relatifs à : [Résolu] [Powershell] [LDAP] un Search sur une sous-OU ?


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