venerdì 18 settembre 2020

Domain Controller: informazioni sulle date di ultimo accesso.

 

Nei Domain Controller Windows gli oggetti, utenti o computer, hanno diversi attributi che risultano utili per capire l'ultima volta che si sono autenticati nel dominio.

Tra questi troviamo:

LastLogon : data e ora dell’ultimo evento di logon. Attenzione che questo valore non viene replicato tra i vari DC di una infrastruttura Active Directory pertanto, se si vuole trovare l’ultimo evento login di un oggetto, bisogna interrogare tutti i Domain Controller presenti.

LastLognTimeStamp : Il valore è presente dalla versione 2003 in poi e viene replicato tra i DC. Riporta il valore temporale espresso in FILETime, ossia il numero di intervalli di 100 nanosecondi che intercorrono tra il “momento” attuale ed il 1° gennaio 1601 riferito ad UTC. 

È possibile, con il comando w32tm /ntte, eseguire una conversione in formato data leggibile.

Tramite Active Directory User e Computer (ADUC) è possibile visualizzare il valore convertito di questo attributo


Nota: deve essere attivata la view avanzata:


Attenzione che il LastLogonTimeStamp è replicato secondo il valore impostato in un altro attributo

ms-DS-Logon-Time-Sync-Interval: attributo espresso in giorni da 1 a 100.000

This attribute controls the granularity, in days, with which the last logon time for a user or computer, recorded in the lastLogonTimestamp attribute, is replicated to all DCs in a domain.

Normalmente non è impostato e il valore di default è di 14 giorni, l’aggiornamento del dato avviene in caso di logon e se questo valore è precedente alla data/ora attuale diminuita del valore in msDS-LogonTimeSyncInterval.

LastLogonDate : non si tratta di un attributo reale gestito dai DC ma è solo un valore messo a disposizione per rilevare le attività di accesso di un oggetto, cioè è un valore calcolato localmente nel server dalla conversione in data dell’attributo LastLogonTimeStamp. Risulta quindi utile in quanto permette di calcolare direttamente le differenze data senza la conversione necessaria con LastLogonTimeStamp.

A partire da Windows Server 2008, grazie a un apposito comando Powershell, possiamo recuperare queste informazioni in modo semplice e rapido.

Tramite il comando Get-ADUser per esempio:

Get-ADUser -identity <username> -properties *

visualizza tutti gli attributi di un utente.

Esempio di scrittura di un file csv con le informazioni di tutti gli utenti:

get-aduser -filter * -properties LastLogonTimestamp, LastLogonDate, Enabled, LogonCount, PasswordExpired, PasswordLastSet, PasswordNeverExpires | sort Name | select Name, SAMAccountName, LastLogonTimestamp, LastLogonDate, Enabled, LockedOut, LogonCount, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c:\temp\user-info-2.csv

tra cui troviamo:

LastLogonTimestamp e LastLogonDate: attenzione che, se nella struttura AD c'è più di un DC, il valore può essere approssimato di 14 giorni.

Enabled : se l'utente è abilitato o meno.

LockedOut : se l'utente è bloccato.

LogonCount : numero di logon.

PasswordExpired: se la password è scaduta.

PasswordLastSet: ultima data di aggiornamento password.

PasswordNeverExpires: se la password non ha scadenza.

con pochi passaggi poi, apertura e divisione in colonne, è possibile costruirsi un file Excel con tutte le info utili, esempio

altra query interessante:

Oggetti computer non attivi da oltre 90 giorni

Search-ADAccount -ComputersOnly -AccountInactive | ? { $_.LastLogonDate -lt (get-date).AddDays(-90) } | Select-Object Name,LastLogonDate,DistinguishedName


Queste query possono essere utili per effettuare un po' di "pulizia" di oggetti Active Directory non più in uso.




Nessun commento:

Posta un commento