Question Script pour lister utilisateur AD

Plus d'informations
il y a 8 ans 9 mois #23737 par morgan
Bonjour,

J'ai besoin d'un script qui me permet lister les utilisateurs dont le nom contient \"stagiaire\" et il faut qu'ils ne soient jamais connectés à l'Active Directory.

J'ai déjà écrit un bout de code :

[code:1][datetime]$date = '01/01/1601'
Get-ADUser -Filter 'SamAccountName -like \"*stagiaire*\"' | Where-Object {$_.lastlogontimestamp -eq $date} | Select-Object name, lastlogontimestamp[/code:1]

Mais il ne me sort rien.


J'ai besoin d'éclaircissement, merci d'avance.

Morgan.<br><br>Message édité par: BlackAbba, à: 9/06/17 15:33

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

Plus d'informations
il y a 8 ans 9 mois #23738 par Philippe
salut BlackAbba

Mais il ne me sort rien.

Je crois que tu n'a pas de chance !!!! :laugh: ;)

Sérieux, tu a au moins deux problèmes :

1) la cmdlet ne renvoie pas tous les attribues de l'AD par défaut !
il faut donc lui précisé la ou les propriétés supplémentaires a extraire
[code:1]Get-ADUser ... -Properties lastlogontimestamp [/code:1]

2) le format de l'attribue lastlogontimestamp n'est pas un format date mais est un entier qui définit le nombre de 100 nano secondes depuis le 1/01/1601.
tu ne peut pas faire la comparaison comme tu la fais ! :(
en plus quand un utilisateur ne c'est jamais connecté au domaine l'attribut reste vide :blink:
mais tu peut donc faire un where tout simple du coup
[code:1]Get-ADUser ... -Properties lastlogontimestamp | Where-Object {-not $_.lastlogontimestamp}
[/code:1]

3) sur ce point c'est a toi de voir mais le SamAccountName c'est le login, on utilise rarement de long nom pour un login. Regarde plutôt l'attribue Name

Bon, avec ça, tu devrait t'en sortir !!!
.

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

Plus d'informations
il y a 8 ans 9 mois #23747 par morgan
Réponse de morgan sur le sujet Re:Script pour lister utilisateur AD
Salut,

D'abord merci pour ton aide,

Après plusieurs test, j'en suis arrivé à ça :

[code:1]$365_j = (Get-Date).adddays(-365)
Get-ADUser -filter {(lastlogontimestamp -le $365_j -and SamAccountName -like \&quot;*stagiaire*\&quot;«»)} -SearchBase \&quot;DC=toto,DC=test\&quot; -Properties MemberOf | Select name, lastlogontimestamp, SamAccountName[/code:1]

Maintenant tout fonctionne et j'ai bien la liste des mes utilisateurs qui ne se sont pas connecté à l'AD depuis un an et dont le nom/login contient 'stagiaire'

Merci encore,

Morgan.

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

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