Chercher un utilisateur

Le
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
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 #18369951
"dav8669" 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
dav8669
Le #18370571
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?
Gilles LAURENT [MVP]
Le #18371821
"dav8669" 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
dav8669
Le #18374691
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
Gilles LAURENT [MVP]
Le #18375591
"dav8669" 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
dav8669
Le #18391091
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
Publicité
Poster une réponse
Anonyme