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
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
Nessun commento:
Posta un commento