Så genererar och exporterar du en rapport över alla inloggade användare

Administratörer vill ofta veta vilka användare som för närvarande är inloggade. Denna information kan hämtas med hjälp av Windows PowerShell-skript. Att skriva skriptet och ändra det varje gång för att generera rapporten i ett specifikt format är dock en tidskrävande och mödosam process. AD-granskningslösningar som ADAudit Plus kan hjälpa administratörer att plocka fram den här rapporten på nolltid. Följande är en jämförelse mellan att plocka fram alla AD-användares inloggade rapport med Windows PowerShell och ADAudit Plus:

PowerShell

Steg för att plocka fram alla inloggade användare med hjälp av PowerShell:

  • Identifiera den domän som du vill hämta rapporten från.
  • Identifiera de LDAP-attribut du behöver för att hämta rapporterna.
  • Identifiera den primära DC:n för att hämta rapporten.
  • Ange ovanstående parametrar i skriptet nedan och kompilera det.
  • Kör den i Windows PowerShell.
  • Rapporten exporteras i filändelseformatet .psm.
  • För att erhålla rapporten i ett annat format modifierar du skriptet i enlighet med detta.

Exempel på Windows PowerShell-skript

function Get-Execute it in Windows PowerShell.UserLogon { [CmdletBinding()] param ( [Parameter ()] [String]$Computer, [Parameter ()] [String]$OU, [Parameter ()] [Switch]$All ) $ErrorActionPreference="SilentlyContinue" $result=@() If ($Computer) { Invoke-Command -ComputerName $Computer -ScriptBlock {quser} | Select-Object -Skip 1 | Foreach-Object { $b=$_.trim() -replace '\s+',' ' -replace '>','' -split '\s' If ($b[2] -like 'Disc*') { $array= ([ordered]@{ 'User' = $b[0] 'Computer' = $Computer 'Date' = $b[4] 'Time' = $b[5..6] -join ' ' }) $result+=New-Object -TypeName PSCustomObject -Property $array } else { $array= ([ordered]@{ 'User' = $b[0] 'Computer' = $Computer 'Date' = $b[5] 'Time' = $b[6..7] -join ' ' }) $result+=New-Object -TypeName PSCustomObject -Property $array } } } If ($OU) { $comp=Get-ADComputer -Filter * -SearchBase "$OU" -Properties operatingsystem $count=$comp.count If ($count -gt 20) { Write-Warning "Search $count computers. Detta kan ta lite tid ... Cirka 4 sekunder för varje dator" } foreach ($u in $comp) { Invoke-Command -ComputerName $u.Name -ScriptBlock {quser} | Select-Object -Skip 1 | ForEach-Object { $a=$_.trim() -replace '\s+',' ' -replace '>','' -split '\s' If ($a[2] -like '*Disc*') { $array= ([ordered]@{ 'User' = $a[0] 'Computer' = $u.Name 'Date' = $a[4] 'Time' = $a[5..6] -join ' ' }) $result+=New-Object -TypeName PSCustomObject -Property $array } else { $array= ([ordered]@{ 'User' = $a[0] 'Computer' = $u.Name 'Date' = $a[5] 'Time' = $a[6..7] -join ' ' }) $result+=New-Object -TypeName PSCustomObject -Property $array } } } } If ($All) { $comp=Get-ADComputer -Filter * -Properties operatingsystem $count=$comp.count If ($count -gt 20) { Write-Warning "Search $count computers. Detta kan ta lite tid ... Cirka 4 sekunder för varje dator ...” } foreach ($u in $comp) { Invoke-Command -ComputerName $u.Name -ScriptBlock {quser} | Select-Object -Skip 1 | ForEach-Object { $a=$_.trim() -replace '\s+',' ' -replace '>','' -split '\s' If ($a[2] -like '*Disc*') { $array= ([ordered]@{ 'User' = $a[0] 'Computer' = $u.Name 'Date' = $a[4] 'Time' = $a[5..6] -join ' ' }) $result+=New-Object -TypeName PSCustomObject -Property $array } else { $array= ([ordered]@{ 'User' = $a[0] 'Computer' = $u.Name 'Date' = $a[5] 'Time' = $a[6..7] -join ' ' }) $result+=New-Object -TypeName PSCustomObject -Property $array } } } } Write-Output $result }
 Kopierad
Klicka för att kopiera hela skriptet

ADAudit Plus

För att få rapporten,

  • Logga in på ADAudit Plus-webbkonsolen som en administratör.
  • Gå till fliken Rapporter. Klicka på avsnittet Användarinloggningar i den vänstra rutan och välj alternativet Användarinloggningsrapporter.
  • Välj Exportera som för att exportera rapporten i något av de föredragna formaten (CSV, PDF, HTML, CSVDE och XLSX).

Skärmbild

powershell-get-logged-on-user-1
 

Nedan följer begränsningarna för att få en rapport om alla AD-användare som är inloggade med hjälp av inbyggda verktyg som Windows PowerShell:

  • Detta skript kan endast utföras från datorerna som har rollen Domäntjänster i Active Directory.
  • Det är svårt att ändra datumformat och tillämpa olika tidszoner på datumresultaten.
  • Det är svårt att exportera rapporten i andra filformat än CSV.
  • Att tillämpa fler filter, som t.ex. OU eller "Användarnamn börjar med" kommer att öka LDAP-frågans komplexitet.

ADAudit Plus genererar rapporten genom att automatiskt skanna alla domänkontrollanter (DC) i domänen för att hämta information om inloggade användare, och visar detta i ett enkelt och intuitivt användargränssnitt.

Relaterade resurser