Question [Résolu] Recherche d'utilisateurs dans AD

Plus d'informations
il y a 15 ans 3 mois #8105 par walken
Bonjour,

Toujours avec mes problèmes d'attributs....

Voici mon nouveau problème :

Dans mon AD, plusieurs scripts ont été developpé et du coup je n'ai pas quelques choses d'homogene notamment au niveau de l'attribut UPN.
En effet, je me retrouve avec deux valeur différentes pour des users.
Par exemples:

User1 son UPN (UserPrincipalName) va etre de la forme :
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.

User2 son UPN va etre de la forme :
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.

Cela pose des problème pour un autre programme qui lit cet attribut.
La valeur de l'attribut que nous voulons fixer est domaine.local


Aussi je me dit qu'avec un script powershell ca fera tres bien l'affaire, et effectivement je pense que je suis presque arrivé au bout de mon script et surtout de la facon de faire.

Je voudrais dans un premier temps sortir tout les users qui ont l'attribut domaine.fr pour cela voici mon script

[code:1]
$searcher=[adsisearcher]\"(userPrincipalName=*@domaine.fr)\"
$result=$searcher.findone()
$resultat=$result.getdirectoryentry()
$resultat.userPrincipalName.value
$resultat = $UPN.userPrincipalName.value

write-host $UPN[/code:1]

en executant ce script j'ai bien un utilisateur qui ressort de mon write-host

ma question est de le faire tourner en boucle jusqu'a ce qu'il ne trouve plus rien.

J'ai essayer avec la commande for pour faire une boucle répétitive, mais ca ne marche pas, voici ce que j'avais mis :

[code:1]
for ($i=0 ;$i –le 5 ;$i++)
{
$searcher=[adsisearcher]\"(userPrincipalName=*@domaine.fr)\"
$result=$searcher.findone()
$resultat=$result.getdirectoryentry()
$resultat.userPrincipalName.value
$resultat = $UPN.userPrincipalName.value
write-host $UPN
}[/code:1]

le problème de ma commande est qu'elle est répétée 5 fois mais qu'il me ressort toujours le même user, il ne passe pas au suivant.
Je ne sais pas trop comment faire. j'ai egalement essayé avec foreach mais sans plus de résultat.

Merci pour votre aide

Message édité par: Arnaud, à: 24/11/10 18:28<br><br>Message édité par: Arnaud, à: 24/11/10 18:30

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #8108 par Vara
Salut Walken,

Il faudrait que tu remplaces:
[code:1]$result=$searcher.findone()[/code:1]
par :
[code:1]$result=$searcher.findall()[/code:1]

Le findone() ne te retourne que la première instance trouvée.

Il faut aussi que tu ajoutes
[code:1]$searcher.PageSize = 0[/code:1]
avant le findall() pour retourner tous les objets et pas limiter le nombre de résultat retourné.

Pour la boucle de traitement, tu peux utiliser:
[code:1]foreach ($user in $result) {
write-host $user.userPrincipalName.value
}[/code:1]

Seb

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #8125 par walken
Bonjour Seb .

Merci beaucoup pour ta solution ca fonctionne a merveille

encore merci de ton aide

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.062 secondes
Propulsé par Kunena