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

Afficher attribut caché Active Directory

5 réponses
Avatar
dav8669
Bonjour,
J'ai un problème avec le script suivant
$ldapQuery = "(&(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.employeeID
$i.properties.cn
$i.properties.mail
}
Après execution du script, le mail et le cn s'affichent mais pas l'employeeID.
Alors que quand je recupere dans le shell directement, sa passe sans problème
$user =[ADSI]"LDAP://*/cn=*,ou=*,OU=*,dc=*dc=*"
$user.get("employeeID")
Pouvez-vous m'aider?
Merci

5 réponses

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

Bonjour,

| J'ai un problème avec le script suivant
| $ldapQuery = "(&(objectclass=user))"

Un objet Ordinateur Active Directory est également membre de la classe
"user". Le filtre ci-dessous vous permettra d'obtenir uniquement les
propriétés des utilisateurs lors de la requête LDAP :
$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.employeeID

Résolution :
Les propriétés de l'objet sont sensibles à la casse :

$i.properties.employeeid

ou alors :

$i.properties.item('EmPloYeeID')

=> Testé sur V1.0 et CTP2

| Après execution du script, le mail et le cn s'affichent mais pas
| l'employeeID. Alors que quand je recupere dans le shell directement,
| sa passe sans problème $user =[ADSI]"LDAP://*/cn=*,ou=*,OU=*,dc=*dc=*"
| $user.get("employeeID")

Je vous l'accorde, cela n'est pas très cohérent. Je jette un oeil sur
"MS Connect" dans le cas ou cette information ne soit déjà référencée
... Dans la négative, je remonte l'information au Team PowerShell.

Merci de votre retour.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
Emmanuel Dreux
Bonjour,

cet attribut ne doit pas faire partie de la liste des attributs retournés
par défaut par l'AD.
Il faut demander à LDAP de le retourner explicitement.

En utilisant LDAP:
ex:
strQuery = "<LDAP://" & strDomainNC & ">;" & strFilter &
";name,userAccountControl,EmployeeID;subtree"


En utilisant DirectorySearcher
$ads.PropertiesToLoad.Add("EmployeeID")

--
Cordialement,
Emmanuel Dreux
http://www.ilinfo.fr


"dav8669" a écrit :

Bonjour,
J'ai un problème avec le script suivant
$ldapQuery = "(&(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.employeeID
$i.properties.cn
$i.properties.mail
}
Après execution du script, le mail et le cn s'affichent mais pas l'employeeID.
Alors que quand je recupere dans le shell directement, sa passe sans problème
$user =[ADSI]"LDAP://*/cn=*,ou=*,OU=*,dc=*dc=*"
$user.get("employeeID")
Pouvez-vous m'aider?
Merci



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

Bonsoir,

| cet attribut ne doit pas faire partie de la liste des attributs
| retournés par défaut par l'AD.
[...]

Cet attribut est retourné si celui-ci est renseigné.
PS > $user.Properties.ProtertyNames

C'est uniquement un problème lié à la casse (V1 / CTP2)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
Emmanuel Dreux
Bonjour,

effectivement,il est retourné par défaut même s'il n'est pas explicitement
spécifié.
Je n'avais pas d'AD sous la main au moment ou j'ai fais le POST précédent.

Curieux et bug de cette version de powershell que de rendre sensible à la
casse un nom d'attribut!!!
bien vu :-)

ADSI et LDAP ne sont pas sensible à la casse ( sauf le nom du provider ex
LDAP://).
J'ai vérifié dans un langage classique et une recherche sur
LDAP://ou=monou,dc=mondom,dc=com ou sur LDAP://OU=MONOU,DC=MONDOM,DC=COM
retournent tous 2 les mêmes objets.

De même,
directoryentry.Properties["employeeid"].Value et
directoryentry.Properties["EmployeeID"].Value retournent tous 2 la valeur.

--
Cordialement,
Emmanuel Dreux
http://www.ilinfo.fr


"Gilles LAURENT [MVP]" a écrit :

"Emmanuel Dreux" a écrit dans
le message de
news:
| Bonjour,

Bonsoir,

| cet attribut ne doit pas faire partie de la liste des attributs
| retournés par défaut par l'AD.
[...]

Cet attribut est retourné si celui-ci est renseigné.
PS > $user.Properties.ProtertyNames

C'est uniquement un problème lié à la casse (V1 / CTP2)

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





Avatar
Gilles LAURENT [MVP]
"Emmanuel Dreux" wrote:

Bonjour,



Bonjour Emmanuel

effectivement,il est retourné par défaut même s'il n'est pas explicitement
spécifié.
Je n'avais pas d'AD sous la main au moment ou j'ai fais le POST précédent.

Curieux et bug de cette version de powershell que de rendre sensible à la
casse un nom d'attribut!!!
bien vu :-)


[...]

Vu la qualité de vos réponses dans les autres forums et plus
particulièrement ceux de Windows Server, je vous pardonne bien volontier :-)
Errare humanum est !

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