Come ottenere la cronologia degli accessi utente in Active Directory

Visualizzare e analizzare la cronologia degli accessi utente è essenziale per prevedere i pattern di accesso ed effettuare degli audit trail. È possibile ottenere la cronologia degli accessi utente tramite Windows PowerShell. In alternativa, ci si può affidare a una soluzione di auditing AD completa come ADAudit Plus, che renderà il procedimento molto più semplice.

Questo articolo confronta i metodi di estrazione delle informazioni sulla cronologia degli accessi utente tramite Windows PowerShell e ADAudit Plus.

PowerShell

Procedura per ottenere la cronologia degli accessi utente in Active Directory:

  • Identificare il dominio da cui desideri recuperare il report.
  • Identificare il DC primario per recuperare il report.
  • Compilare lo script.
  • Eseguirlo in Windows PowerShell
  • In caso sia necessario esportare il report in un particolare formato file, bisognerà personalizzare opportunamente il cmdlet.

Script di esempio per Windows PowerShell

# Find DC list from Active Directory
$DCs = Get-ADDomainController -Filter *
 
# Define time for report (default is 1 day)
$startDate = (get-date).AddDays(-1)
 
# Store successful logon events from security logs with the specified dates and workstation/IP in an array
foreach ($DC in $DCs){
$slogonevents = Get-Eventlog -LogName Security -ComputerName $DC.Hostname -after $startDate | where {$_.eventID -eq 4624 }}
 
# Crawl through events; print all logon history with type, date/time, status, account name, computer and IP address if user logged on remotely
 
 foreach ($e in $slogonevents){
 # Logon Successful Events
 # Local (Logon Type 2)
 if (($e.EventID -eq 4624 ) -and ($e.ReplacementStrings[8] -eq 2)){
 write-host "Type: Local Logon`tDate: "$e.TimeGenerated "`tStatus: Success`tUser: "$e.ReplacementStrings[5] "`tWorkstation: "$e.ReplacementStrings[11]
 }
 # Remote (Logon Type 10)
 if (($e.EventID -eq 4624 ) -and ($e.ReplacementStrings[8] -eq 10)){
 write-host "Type: Remote Logon`tDate: "$e.TimeGenerated "`tStatus: Success`tUser: "$e.ReplacementStrings[5] "`tWorkstation: "$e.ReplacementStrings[11] "`tIP Address: "$e.ReplacementStrings[18]
 }}
 Copied
Fare clic per copiare l’intero script

ADAudit Plus

Per ottenere il report,

  • Accedere alla console web di ADAudit Plus.
  • Navigare fino alla scheda Report -> sezione Accessi/Disconnessioni locali -> report dell’Attività di accesso.
  • Nel campo “Dominio”, nell’angolo in alto a destra, selezionare il dominio desiderato oppure “Tutti i domini”.
  • Se necessario, usare l’opzione “Cerca” per filtrare specifici nomi utente o controller di dominio.
  • Si otterrà l’intera cronologia degli accesso degli utenti per il periodo selezionato.
    active-directory-user-logon-logoff-report-powershell-1
  • Esportare il report nel formato scelto: CSV, PDF, XLS, o HTML.

Di seguito sono elencate le limitazioni dell’uso di PowerShell per ottenere la cronologia degli accessi:

  • Possiamo eseguire lo script qui riportato solo dai computer che dispongono del ruolo Active Directory Domain Services.
  • Per cambiare il formato della data e applicarvi fusi orari differenti, lo script deve essere modificato o ricreato ogni volta.
  • Si incontrano difficoltà nell’esportare il report in altri formati.
  • L'applicazione di molteplici filtri, come "Durante l’orario di lavoro", "Periodo" o "Esporta come", aumenterà la complessità della query LDAP.

D’altro canto, ADAudit Plus scansionerà rapidamente tutti i controller di dominio per ottenere l’intera cronologia degli accessi utente, raccogliendo tutto in un report di facile comprensione.

  • Script PowerShell e semplificazione del controllo delle modifiche AD con ADAudit Plus.
  •  
  • Facendo clic su “Inizia subito la tua prova gratuita” accetti l’elaborazione dei tuoi dati personali in base all’informativa sulla privacy.
  •  
  • Grazie per lo scaricamento!
  • Il tuo scaricamento dovrebbe iniziare automaticamente tra 15 secondi. Altrimenti, fai clic qui per scaricare manualmente.

Risorse correlate