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

Get dans un script

1 réponse
Avatar
dav8669
Bonjour,
Voilà je me heurte au problème suivant, le GET n'est pas reconnu dans mes scripts.
Je souhaite récupérer un attribut dans une variable pour le réinjecter ailleyrs. Avec $i.Properties.cn cela affiche l'attribut mais je cherche à en extraire une partie.
$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) {

$surname=$i.get("cn")
$nom=$surname.split(' ')
$nom[2]

}

Alors que le code suivant dans la console fonctionne
$user =[ADSI]"LDAP://*cn=*ou=*OU=*,dc=*,dc=*"
$numero=$user.get("cn")
$nu=$numero.split(' ')
$nu[2]
Merci pour votre aide

1 réponse

Avatar
Gilles LAURENT [MVP]
"dav8669" wrote:

Bonjour,



Bonjour,

Voilà je me heurte au problème suivant, le GET n'est pas reconnu dans mes
scripts.
Je souhaite récupérer un attribut dans une variable pour le réinjecter
ailleyrs. Avec $i.Properties.cn cela affiche l'attribut mais je cherche à en
extraire une partie.
$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) {

$surname=$i.get("cn")
$nom=$surname.split(' ')
$nom[2]

}



La classe [ResultPropertyCollection] ne contient pas de méthode Get.
Toutefois la méthode Item est disponible :

$nom=([string]$i.properties.cn).split(' ')
$nom[2] # 3ème élément du cn

ou alors :

$nom=([string]$i.properties.Item('cn')).split(' ')
$nom[2] # 3ème élément du cn

Note: Le typecast [string] permet d'utiliser la méthode Split sur l'objet de
classe [ResultPropertyValueCollection]

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