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:
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 }Skärmbild
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:
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.
Inloggning och utloggning
Spärrade konton
Händelseloggar för Windows
Granskning av filserver
Granskning av Active Directory
Azure AD
Server auditing
Computer start-ups and shut-downs