Hur man får användares inloggningshistorik i Active Directory

Det är viktigt att visa och analysera användarnas inloggningshistorik eftersom det hjälper till att förutse inloggningsmönster och skapa granskningsloggar. Du kan få inloggningshistoriken för användare med hjälp av Windows PowerShell. Alternativt kan du använda en heltäckande AD-granskningslösning som t.ex. ADAudit Plus som kommer att förenkla saker och ting för dig.

I denna artikel jämförs metoden för att få information om inloggningshistorik för användare med hjälp av Windows PowerShell och ADAudit Plus.

PowerShell

Steg att ta för att få användares inloggningshistorik:

  • Identifiera den domän som du vill hämta rapporten från.
  • Identifiera den primära DC:n för att hämta rapporten.
  • Kompilera skriptet.
  • Kör den i Windows PowerShell
  • Om du vill exportera rapporten i ett visst filformat måste du anpassa cmdlet efter behov.

Exempel på Windows PowerShell-skript

# 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
Click to copy entire script

ADAudit Plus

För att få rapporten,

  • Logga in på ADAudit Plus-webbkonsolen.
  • Navigera till fliken Rapporter -> Avsnittet Lokal inloggning-utloggning -> Rapport om inloggningsaktivitet.
  • I fältet "Domän" som du ser högst upp i det högra hörnet väljer du antingen den obligatoriska domänen eller väljer "Alla domäner".
  • Använd alternativet "Sök" för att filtrera efter specifikt användarnamn, eller domänkontrollant, vid behov.
  • Få hela inloggningshistoriken för användare under en valfri period.
    active-directory-user-logon-logoff-report-powershell-1
  • Exportera rapporten i ett valfritt format: CSV, PDF, XLS eller HTML.

Det följande är begränsningarna vid användning av PowerShell för att få inloggningshistorik för användare:

  • Vi kan endast köra ovanstående skript från datorerna som har rollen Domäntjänster i Active Directory.
  • För att ändra datumformat och för att tillämpa olika tidszoner på datumresultaten måste skriptet ändras eller skapas varje gång.
  • Det är svårt att exportera rapporten i andra format.
  • Att tillämpa fler filter, som t.ex. "Under kontorstider", "Period" och "Exportera som", kommer att öka LDAP-frågans komplexitet.

Däremot kommer ADAudit Plus att skanna alla DC:er i domänen och ge dig hela historiken över användarnas inloggningar i form av en intuitiv rapport.

Relaterade resurser