Jak uzyskać informacje o historii logowania użytkownika w usłudze Active Directory

Wyświetlanie i analizowanie historii logowania użytkownika jest kluczowe, ponieważ pomaga przewidywać schematy logowania i prowadzić dziennik inspekcji. Informację o historii logowania użytkownika można uzyskać za pomocą Windows PowerShell. Ewentualnie można ułatwić sobie zadanie, korzystając z kompletnego systemu inspekcji AD, takiego jak ADAudit Plus.

W poniższym artykule porównano sposób generowania informacji na temat historii logowania użytkownika za pomocą Windows PowerShell i ADAudit Plus.

PowerShell

Etapy uzyskiwania informacji o historii logowania użytkownika:

  • Określ domenę, z której ma zostać pobrany raport.
  • Określ główny kontroler domeny, z którego ma zostać pobrany raport.
  • Skompiluj skrypt.
  • Wykonaj go w programie Windows PowerShell.
  • Jeśli chcesz wyeksportować raport w pliku o konkretnym formacie, musisz odpowiednio spersonalizować cmdlet.

Przykładowy skrypt 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
Kliknij, aby skopiować cały skrypt

ADAudit Plus

Uzyskiwanie raportu:

  • Zaloguj się do konsoli sieciowej ADAudit Plus.
  • Przejdź do karty Raporty -> część Lokalne logowanie/wylogowywanie -> Raport o aktywności logowania.
  • W polu „Domena” w prawym górnym rogu wybierz żądaną domenę lub „Wszystkie domeny”.
  • Użyj opcji „Wyszukaj”, aby wyfiltrować konkretne nazwy użytkownika lub, w miarę potrzeby, kontrolera domeny.
  • Uzyskaj kompletną historię logowania użytkowników w wybranym okresie.
    active-directory-user-logon-logoff-report-powershell-1
  • Eksportuj raport w wybranym formacie: CSV, PDF, XLS lub HTML.

Poniżej przedstawiono ograniczenia dotyczące stosowania PowerShell w celu uzyskania informacji o historii logowania użytkownika:

  • Powyższy skrypt można uruchomić tylko na komputerach z rolą Active Directory Domain Services.
  • Aby zmienić formaty daty i zastosować w wynikach daty różne strefy czasowe, należy zmodyfikować skrypt lub za każdym razem tworzyć nowy.
  • Trudno jest wyeksportować raport w innych formatach.
  • Zastosowanie dodatkowych filtrów, takich jak „W godzinach roboczych”, „Okres” czy „Eksportuj jako”, zwiększy złożoność zapytania LDAP.

Z kolei ADAudit Plus szybko zeskanuje wszystkie kontrolery domeny w domenie i pozwoli uzyskać pełną historię logowania użytkownika w formie intuicyjnego raportu.

  • Wykonywanie skryptów PowerShell i uproszczony audyt zmian w AD za pomocą ADAudit Plus.
  •  
  • Przez kliknięcie „Pobierz bezpłatną wersję próbną” akceptujesz licencję użytkownika i polityką prywatności.
  •  
  • Dziękujemy za pobranie!
  • Pobieranie powinno rozpocząć się automatycznie w ciągu 15 sekund. Jeśli nie rozpocznie się automatycznie, kliknij tutaj, aby pobrać ręcznie