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
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
Bonjour,
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