Question
Age du mot de passe dans AD (Résolu)
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 17 ans 7 mois #2660
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:age du mot de passe dans AD.
Bonjour Noxydius,
Tout simplement parce que lorsque tu utilises la méthode FindAll, ça te retourne un tableau d'objets. Donc, le premier résultat se trouvera à l'indice 0.
Exemple :
[code:1]PS > $boucle[0].PasswordLastChanged.dayofyear[/code:1]
Tu peux aussi utiliser une boucle ForEach afin de lister tous les éléments de ton tableau, comme ceci:
[code:1]
ForEach ($i in $boucle)
{
$i.PasswordLastChanged.dayofyear
}[/code:1]
@++
Arnaud
Tout simplement parce que lorsque tu utilises la méthode FindAll, ça te retourne un tableau d'objets. Donc, le premier résultat se trouvera à l'indice 0.
Exemple :
[code:1]PS > $boucle[0].PasswordLastChanged.dayofyear[/code:1]
Tu peux aussi utiliser une boucle ForEach afin de lister tous les éléments de ton tableau, comme ceci:
[code:1]
ForEach ($i in $boucle)
{
$i.PasswordLastChanged.dayofyear
}[/code:1]
@++
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- rodriguez
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 61
- Remerciements reçus 0
il y a 17 ans 7 mois #2667
par rodriguez
Réponse de rodriguez sur le sujet Re:age du mot de passe dans AD.
Merci Arnaud pour ton aide,
Mais voila même avec le foreach c'est vide:
[code:1]
$ldapquery = [ADSI] 'LDAP://OU=Utilisateurs,DC=fr,DC=compass,DC=local'
$objrechercher = New-object system.directoryservices.directorysearcher($ldapQuery)
$objrechercher.filter='(&(objectCategory=person)(objectClass=user))'
$boucle = $objrechercher
foreach ($i in $boucle)
{
$toto = $i.PasswordLastChanged.dayofyear
$toto
}
Je loupe un truc c'est sur :«»( [/code:1]<br><br>Message édité par: noxydius, à: 7/08/08 11:11
Mais voila même avec le foreach c'est vide:
[code:1]
$ldapquery = [ADSI] 'LDAP://OU=Utilisateurs,DC=fr,DC=compass,DC=local'
$objrechercher = New-object system.directoryservices.directorysearcher($ldapQuery)
$objrechercher.filter='(&(objectCategory=person)(objectClass=user))'
$boucle = $objrechercher
foreach ($i in $boucle)
{
$toto = $i.PasswordLastChanged.dayofyear
$toto
}
Je loupe un truc c'est sur :«»( [/code:1]<br><br>Message édité par: noxydius, à: 7/08/08 11:11
Connexion ou Créer un compte pour participer à la conversation.
- rodriguez
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 61
- Remerciements reçus 0
il y a 17 ans 7 mois #2672
par rodriguez
Réponse de rodriguez sur le sujet Re:age du mot de passe dans AD.
Bonjour,
je réitère mon appel a l'aide au sujet de ma boucle.
Comment expliquer que ma boucle Foreach ne me retourne rien.
Alors que si je spécifie en exemple un CN=prénom Nom correct j'ai les bonnes infos me sont retournées.
Est ce que c'est mon filtre qui est pas bon?
ou encore mon New-Object ?
Merci de m'éclairer, je suis à la rue.
A bientôt.
je réitère mon appel a l'aide au sujet de ma boucle.
Comment expliquer que ma boucle Foreach ne me retourne rien.
Alors que si je spécifie en exemple un CN=prénom Nom correct j'ai les bonnes infos me sont retournées.
Est ce que c'est mon filtre qui est pas bon?
ou encore mon New-Object ?
Merci de m'éclairer, je suis à la rue.
A bientôt.
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 17 ans 7 mois #2674
par Robin Lemesle
Si ta boucle ne retourne rien, j'ai bien peur que ta variable $objrechercher soit vide...
Le principe de la boucle est bon, mais je pense qu'il faut que tu creuses du coté de requête ADSI !!!
Je vais regarder ca avec un AD dans la journée !
See you.
Robin MVP PowerShell
Réponse de Robin Lemesle sur le sujet Re:age du mot de passe dans AD.
Comment expliquer que ma boucle Foreach ne me retourne rien.
Si ta boucle ne retourne rien, j'ai bien peur que ta variable $objrechercher soit vide...
Le principe de la boucle est bon, mais je pense qu'il faut que tu creuses du coté de requête ADSI !!!
Je vais regarder ca avec un AD dans la journée !
See you.
Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- rodriguez
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 61
- Remerciements reçus 0
il y a 17 ans 7 mois #2675
par rodriguez
Réponse de rodriguez sur le sujet Re:age du mot de passe dans AD.
Bonjour Robin,
Effectivement ma variable $objrechercher est vide.
Et je n'arrive pas à déterminer la cause.
Malgré plusieurs essais de requête ADSI trouvé sur le net.
Comme si mon OU=Utilisateurs était vide. Ce qui est bien sur pas le cas faisant des essais sur une AD en production.
Merci de ton aide.
Effectivement ma variable $objrechercher est vide.
Et je n'arrive pas à déterminer la cause.
Malgré plusieurs essais de requête ADSI trouvé sur le net.
Comme si mon OU=Utilisateurs était vide. Ce qui est bien sur pas le cas faisant des essais sur une AD en production.
Merci de ton aide.
Connexion ou Créer un compte pour participer à la conversation.
- rodriguez
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 61
- Remerciements reçus 0
il y a 17 ans 7 mois #2676
par rodriguez
Réponse de rodriguez sur le sujet Re:age du mot de passe dans AD.
En continuant mes recherches:
Si je reviens a écrire le findall() comme ceci:
[code:1]
$ldapquery = [ADSI] 'LDAP://OU=Utilisateurs,DC=fr,DC=compass,DC=local'
$objrechercher = New-object system.directoryservices.directorysearcher($ldapQuery)
$objrechercher.filter='(&(objectClass=person)(objectCategory=person))'
$boucle = $objrechercher.findall()
[/code:1]
dans ma boucle:
[code:1]
foreach ($user in $boucle)
{
write-host 'hello'
$name = $user.properties[\"name\"]
write-host $name
$dayofyear = $name.PasswordLastChanged.dayofyear
$change = $name.whenchanged
write-host $dayofyear
write-host $change
}
[/code:1]
J'ai bien tous les noms des utilisateurs qui s'affichent avec mon petit Hello devant, mais je n'ai pas la propriété Passwordlastchanged ou bien Whenchanged.
Comme si l'ADSI ne prenait pas toutes les informations de l'AD concernant les propriétés des utilisateurs.<br><br>Message édité par: Arnaud, à: 18/08/08 22:21
Si je reviens a écrire le findall() comme ceci:
[code:1]
$ldapquery = [ADSI] 'LDAP://OU=Utilisateurs,DC=fr,DC=compass,DC=local'
$objrechercher = New-object system.directoryservices.directorysearcher($ldapQuery)
$objrechercher.filter='(&(objectClass=person)(objectCategory=person))'
$boucle = $objrechercher.findall()
[/code:1]
dans ma boucle:
[code:1]
foreach ($user in $boucle)
{
write-host 'hello'
$name = $user.properties[\"name\"]
write-host $name
$dayofyear = $name.PasswordLastChanged.dayofyear
$change = $name.whenchanged
write-host $dayofyear
write-host $change
}
[/code:1]
J'ai bien tous les noms des utilisateurs qui s'affichent avec mon petit Hello devant, mais je n'ai pas la propriété Passwordlastchanged ou bien Whenchanged.
Comme si l'ADSI ne prenait pas toutes les informations de l'AD concernant les propriétés des utilisateurs.<br><br>Message édité par: Arnaud, à: 18/08/08 22:21
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.074 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Age du mot de passe dans AD (Résolu)