Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Accès direct à un enregistrment méthode find

2 réponses
Avatar
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

2 réponses

Avatar
Gilles LAURENT [MVP]
"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
Avatar
dav8669
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