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

Chercher un utilisateur

6 réponses
Avatar
dav8669
Bonjour,
J'ai un soucis avec le bout de code suivant.Impossible d'appeler la méthode sur expression ayant la valeur nulle. Alors que quand je supprime la variable test et que je met samaccountname=nom.prenom
Savez-vous d'ou sa peut venir? Merci. Sachant que j'ai besoin de récupérer le samaccountname avant.

$domain =[ADSI]"LDAP://*/dc=domain,dc=fr"
$searcher=New-Object System.DirectoryServices.DirectorySearcher $domain
$test="nom.prenom"

$searcher.Filter='(&(objectClass=User)(samaccountname= "$test"))'
$userResult=$searcher.FindOne()
$user=$userResult.GetDirectoryEntry()
$user.employeeID

6 réponses

Avatar
Gilles LAURENT [MVP]
"dav8669" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| J'ai un soucis avec le bout de code suivant.Impossible d'appeler la
| méthode sur expression ayant la valeur nulle. Alors que quand je
| supprime la variable test et que je met samaccountname=nom.prenom
| Savez-vous d'ou sa peut venir? Merci. Sachant que j'ai besoin de
| récupérer le samaccountname avant.
[...]

L'exemple ci-dessous recherche l'objet $samaccount à partir de la racine
du domaine (defaut) puis affiche son attribut EmployeeID. Ce script
utilise le connecteur [adsisearcher] disponible depuis PowerShell V2
CTP.

$samaccount="user"
$searcher=[adsisearcher]"(samaccountname=$samaccount)"
$user=$searcher.findone()
$user.properties.employeeid

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
dav8669
dav8669 a écrit le 12/01/2009 à 16h04 :
Bonjour,
J'ai un soucis avec le bout de code suivant.Impossible d'appeler la
méthode sur expression ayant la valeur nulle. Alors que quand je
supprime la variable test et que je met samaccountname=nom.prenom
Savez-vous d'ou sa peut venir? Merci. Sachant que j'ai besoin de
récupérer le samaccountname avant.

$domain =[ADSI]"LDAP://*/dc=domain,dc=fr"
$searcher=New-Object System.DirectoryServices.DirectorySearcher $domain
$test="nom.prenom"

$searcher.Filter='(&(objectClass=User)(samaccountname=
"$test"))'
$userResult=$searcher.FindOne()
$user=$userResult.GetDirectoryEntry()
$user.employeeID


ok. Je testerai demain matin. Pas d'accès ce soir.Et mon bout de code te paraissait pas bon?
Avatar
Gilles LAURENT [MVP]
"dav8669" a écrit dans le message de
news:

Bonsoir,

| ok. Je testerai demain matin. Pas d'accès ce soir.Et mon bout de code
| te paraissait pas bon?

Oui, il est bien malgré une toute petite erreur ;-) Je souhaite
cependant vous donner des solutions optimisées v2 CTP. Pour reprendre
votre code dont le problème est causé par des problèmes de quotes et de
guillemets :

Une seule ligne à corriger :
$searcher.Filter="(&(objectClass=User)(samaccountname=$test))"

Note: N'hésitez pas à me dire, lors de vos posts, si je dois reprendre
votre code et le "corriger" ou alors l'optimiser avec les nouvelles
fonctionnalités disponibles avec PowerShell v2 CTP.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
dav8669
dav8669 a écrit le 12/01/2009 à 16h04 :
Bonjour,
J'ai un soucis avec le bout de code suivant.Impossible d'appeler la
méthode sur expression ayant la valeur nulle. Alors que quand je
supprime la variable test et que je met samaccountname=nom.prenom
Savez-vous d'ou sa peut venir? Merci. Sachant que j'ai besoin de
récupérer le samaccountname avant.

$domain =[ADSI]"LDAP://*/dc=domain,dc=fr"
$searcher=New-Object System.DirectoryServices.DirectorySearcher $domain
$test="nom.prenom"

$searcher.Filter='(&(objectClass=User)(samaccountname=
"$test"))'
$userResult=$searcher.FindOne()
$user=$userResult.GetDirectoryEntry()
$user.employeeID


Merci pour le adsisearcher qui fonctionne bien en v2
Comment tester l'existence d'un utilisateur?
Je parcours mon annuaire. Si je le trouve, je fais un traitement sinon un autre. merci
Avatar
Gilles LAURENT [MVP]
"dav8669" a écrit dans le message de
news:
|| $userResult=$searcher.FindOne()
|| $user=$userResult.GetDirectoryEntry()
|| $user.employeeID
| Merci pour le adsisearcher qui fonctionne bien en v2
| Comment tester l'existence d'un utilisateur?
| Je parcours mon annuaire. Si je le trouve, je fais un traitement
| sinon un autre. merci

Pour reprendre votre exemple :

$userResult=$searcher.FindOne()
if ($userResult -ne $null) {
$user=$userResult.GetDirectoryEntry()
$user.employeeID
} else {
"Not Found !"
}

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
dav8669
Gilles LAURENT [MVP] a écrit le 13/01/2009 à 11h12 :
"dav8669" a écrit dans le
message de
news:
|| $userResult=$searcher.FindOne()
|| $user=$userResult.GetDirectoryEntry()
|| $user.employeeID
| Merci pour le adsisearcher qui fonctionne bien en v2
| Comment tester l'existence d'un utilisateur?
| Je parcours mon annuaire. Si je le trouve, je fais un traitement
| sinon un autre. merci

Pour reprendre votre exemple :

$userResult=$searcher.FindOne()
if ($userResult -ne $null) {
$user=$userResult.GetDirectoryEntry()
$user.employeeID
} else {
"Not Found !"
}

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


Tout est parfait. Cela fonctionne. Problème résolu