Accès direct à un enregistrment méthode find

Le
dav8669
Bonjour,
J'aimerais savoir s'il existe une méthode find qui permet d'accéder directement à un enregistrement et comment elle fonctionne, avec quels paramètre.
J'ai vu qu'il y avait les méthodes findone et findall mais elles ne m'interessent pas.
Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles LAURENT [MVP]
Le #18306461
"dav8669" wrote:

Bonjour,



Bonjour,

J'aimerais savoir s'il existe une méthode find qui permet d'accéder directement
à un enregistrement et comment elle fonctionne, avec quels paramètre.
J'ai vu qu'il y avait les méthodes findone et findall mais elles ne
m'interessent pas.



Je suppose ici que vous souhaitez réaliser un bind sur un objet de type
utilisateur ou groupe de l'annuaire Active Directory dont vous ne connaissez
pas le DN. Dans ce cas, vous pouvez utuliser le connecteur [ADSI] avec le
fournisseur WinNT. Par exemple :

$user=[ADSI]"WinNT://server/testuser,user"
$user | gm

Sinon, vous disposez également du connecteur [AdsiSearcher] disponible
depuis PowerShell V2 CTP couplé à la méthode Findone(). Par exemple :

$user=([AdsiSearcher]"CN=testuser").Findone()
$user | gm

Pourquoi les méthodes Findone() et Findall() ne vous intéressent pas ?

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
dav8669
Le #18306781
Gilles LAURENT [MVP] a écrit le 05/01/2009 à 15h24 :
"dav8669" wrote:

Bonjour,




Bonjour,

J'aimerais savoir s'il existe une méthode find qui permet
d'accéder directement
à un enregistrement et comment elle fonctionne, avec quels
paramètre.
J'ai vu qu'il y avait les méthodes findone et findall mais elles ne
m'interessent pas.




Je suppose ici que vous souhaitez réaliser un bind sur un objet de type
utilisateur ou groupe de l'annuaire Active Directory dont vous ne connaissez
pas le DN. Dans ce cas, vous pouvez utuliser le connecteur [ADSI] avec le
fournisseur WinNT. Par exemple :

$user=[ADSI]"WinNT://server/testuser,user"
$user | gm

Sinon, vous disposez également du connecteur [AdsiSearcher] disponible
depuis PowerShell V2 CTP couplé à la méthode Findone().
Par exemple :

$user=([AdsiSearcher]"CN=testuser").Findone()
$user | gm

Pourquoi les méthodes Findone() et Findall() ne vous intéressent
pas ?

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr


Rebonjour,
Tout d'abord, je début et je ne sais pas ce qu'est un bind.
Actuellement mon script
Actuellement j'ai :
$ldapQuery = "(&(objectCategory=person)(objectClass=user))"
$de = [ADSI]"LDAP://*/ou=*,OU=*,dc=*,dc=*"
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall()

foreach ($i in $complist) {
$i.Properties.cn
$User = $i.GetDirectoryEntry()
$EmpID=$user.employeeID
$num=$user.samAccountName
$num=$num -replace('^.', '1')
Write-Host "$EmpID"
write-Host "$num"



$de1 = [ADSI]"LDAP://*/ou=*,OU=*,dc=*,dc=*"
$ads1 = new-object system.directoryservices.directorysearcher -argumentlist $de1,$ldapQuery
$complist1 = $ads1.findall()
foreach ($j in $complist1) {
$j.Properties.cn
$numiut=([string]$j.properties.description).split(' ')
$num1=$numiut[3]
write-Host "$num1"
}
if ($num -eq $num1)
{ write-Host ("les chaines sont égales")}
else
{ write-Host("les chaines ne sont pas égales")}
}
Je cherche à remplacer mon deuxième foreach parce que le parcours des deux boucles prend pas de temps. Donc je cherche à optimiser le tout.
Je souhaiteraiis faire une lecture en accès direct en récupérant un attribuant du premier groupe par exemple et en le reinserant dans le deuxieme groupe.Est ce possible? Existe-t-il une méthode? Find ou équivalent?
Merci pour ton aide
Je nage pas mal
Publicité
Poster une réponse
Anonyme