Get dans un script

Le
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
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 #18170861
"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
Publicité
Poster une réponse
Anonyme