Question
[Résolu] Recherche d'utilisateurs dans AD
- walken
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
il y a 15 ans 3 mois #8105
par walken
[Résolu] Recherche d'utilisateurs dans AD a été créé 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
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.
- Vara
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 30
- Remerciements reçus 0
il y a 15 ans 3 mois #8108
par Vara
Réponse de Vara sur le sujet Re:Répéter une commande pour lire un attribut AD
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
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.
- walken
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
il y a 15 ans 3 mois #8125
par walken
Réponse de walken sur le sujet Re:Répéter une commande pour lire un attribut AD
Bonjour Seb .
Merci beaucoup pour ta solution ca fonctionne a merveille
encore merci de ton aide
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Recherche d'utilisateurs dans AD