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.
# 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] }}
Di seguito sono elencate le limitazioni dell’uso di PowerShell per ottenere la cronologia degli accessi:
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.