Question Lister les users AD avec date de dernier login

Plus d'informations
il y a 12 ans 1 mois #11248 par faure-brac
Bonjour,

je découvre powershell et une chose évidente me saute aux yeux, ça a vraiment l'air d'être super puissant! j'ai regardé une vidéo technet présentant ce produit et je suis resté bouche bée devant sa simplicité et sa gestion multi-plateforme.

J'ai une question pour vous.

Je souhaite lister tous les utilisateurs de mon domaine AD avec la date de leur dernier login (une manière pour faire le tri et pouvoir supprimer les accès obsolètes.

J'ai pu voir dans la bibilothèque de scripts quelque chose permettant de lister les users, mais la date apparait en millisecondes depuis janvier 1601.

Il y a bien aussi un tuto sur la conversion de cette donnée, mais comment compiler les deux afin d'obtenir un tableau avec juste le nom de l'utilisateur et sa date (format date) de dernier login.

j'ai testé, mais je n'arrive pas à obtenir un résultat probant.

Merci pour votre aide.

Patrice

Message édité par: patou, à: 28/02/12 13:53<br><br>Message édité par: patou, à: 28/02/12 13:54

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

Plus d'informations
il y a 12 ans 4 semaines #11250 par Philippe
salut patou

Tu trouvera la solution dans le livre du menu de gauche \&quot;Windows PowerShell\&quot;, chapitre etude de cas. si tu ne la pas encore :

[code:1]
# Get-userAccounts.ps1 – v1.0
[datetime]$date = '01/01/1601'

$adsPath = 'LDAP://OU=Utilisateurs,' + ([ADSI]'').distinguishedName
$objDomaine = [ADSI]$adsPath
$objRecherche =
New-Object System.DirectoryServices.DirectorySearcher($objDomaine)
$requete = '(&amp;(objectCategory=person)(objectClass=user))'
$objRecherche.Filter=$requete
$comptes = $objRecherche.FindAll()

$comptes |
select-object @{e={$_.properties.cn};n='Nom commun'},
@{e={$_.properties.whencreated};n='Date de création'},
@{e={$_.properties.homedrive};n='HD'},
@{e={$_.properties.homedirectory};n='HomeDirectory'},
@{e={$date.AddTicks($($_.properties.lastlogontimestamp))};
n='Dernière connexion'}
[/code:1]

perso j'utilise ce script repris du livre
[code:1]
[datetime]$date = '01/01/1601'

$requete = '(&amp;(objectCategory=person)(objectClass=user))'
$de = new-object system.directoryservices.directoryentry
$objRecherche = new-object system.directoryservices.directorysearcher -argumentlist $de
$objRecherche.Filter=$requete
$comptes = $objRecherche.FindAll()

$comptes |
select-object @{e={$_.properties.cn};n='Nom commun'},
@{e={$_.properties.whencreated};n='Date de création'},
@{e={$date.AddTicks($($_.properties.lastlogontimestamp))};
n='Dernière connexion'} | Format-Table
[/code:1]
car le precedant me donne une erreur dans findall (probleme d'OU, j'ai plusieurs OU utilisateurs)

pour info les date en 1601 sont les utilisateurs qui ne se sont jamais connecter

je te conseil d'acheter le livre pour d'aider au debut, de plus tu aura les modifs pour une utilisation plus simple sous windows 2008 R2

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

Plus d'informations
il y a 11 ans 5 mois #12821 par COTTIN
je remet se sujet comme j'ai une petite question.

Le script parfais il ma aider, mais j'ai 3 Domaines a gérer et j'aimerais jongler avec les 3 domaines mais avec le même script.

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

Plus d'informations
il y a 11 ans 5 mois #12923 par Nicolas Lang
Par contre ce qu'il faut savoir, c'est que la date de dernier login n'est pas répliquée entre les différents contrôleurs de domaine.

Ainsi, si un utilisateur s'est par pur hasard toujours connecté sur AD1, si vous lancez votre requête et que c'est AD2 qui réponds, vous tomberez sur une date telle que 01/01/1601 ...

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

Plus d'informations
il y a 11 ans 5 mois #12928 par Gaga
Darum a écrit :

Par contre ce qu'il faut savoir, c'est que la date de dernier login n'est pas répliquée entre les différents contrôleurs de domaine.

+1

Le mieux est de scruter tous les DC est de prendre la propriété \&quot;LastLogon\&quot; (non répliquée) la plus récente.

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

Plus d'informations
il y a 11 ans 5 mois #12929 par Matthew BETTON
Bonsoir,

A ce sujet, il y a quelques temps, sur le présent Forum .

@ +

Matthew

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

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