Como gerar e exportar o relatório de usuários logados

Os administradores geralmente desejam saber a lista de todos os usuários que estão conectados no momento. Essas informações podem ser obtidas usando scripts do Windows Poweshell. No entanto, escrever o script e alterá-lo sempre para gerar o relatório no formato especificado é um processo trabalhoso. Uma solução de auditoria do AD como o ADAudit Plus pode ajudar os administradores a obter esse relatório rapidamente. A seguir está uma comparação entre obter um relatório dos usuários logados do AD com o Windows PowerShell e com o ADAudit Plus:

PowerShell

Etapas para obter todos os usuários logados usando o PowerShell:

  • Identifique o domínio do qual você deseja recuperar o relatório.
  • Identifique os atributos LDAP necessários para buscar o relatório.
  • Identifique o DC primário para recuperar o relatório.
  • Especifique os parâmetros acima no script abaixo e compile-o.
  • Execute-o no Windows PowerShell.
  • O relatório será exportado no formato de arquivo com extensão .psm.
  • Para obter o relatório em um formato diferente, modifique o script adequadamente.

Exemplo de script do Windows PowerShell

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. This may take some time ... About 4 seconds for each computer"
	
}
	
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. This may take some time ... About 4 seconds for each computer ..."
	
}
	
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
}

 Copiado
Clique para copiar o script inteiro

ADAudit Plus

Para obter o relatório,

  • Faça login no console web do ADAudit Plus como administrador.
  • Navegue até a guia Relatórios. Clique na seção Logons de usuário no painel esquerdo e selecione a opção Relatórios de logon de usuário.
  • Selecione Exportar como para exportar o relatório em qualquer um dos formatos preferidos (CSV, PDF, HTML, CSVDE e XLSX).

Captura de tela

powershell-get-logged-on-user-1
 

A seguir estão as limitações para obter um relatório de todos os usuários do AD conectados usando ferramentas nativas como o Windows PowerShell:

  • O script pode ser executado somente em computadores que tenham a função de serviços de domínio do Active Directory.
  • É difícil alterar formatos de data e aplicar diferentes fusos horários nos resultados da data.
  • É difícil exportar o relatório em formatos de arquivo diferentes de CSV.
  • Aplicar mais filtros como UO ou "Nome de usuário começa com" aumentará a complexidade da consulta LDAP.

O ADAudit Plus vai gerar o relatório verificando automaticamente todos os DCs no domínio para recuperar os usuários que estão conectados, exibidos em uma interface de usuário simples e intuitiva.

  • Evite scripts complexos do PowerShell e simplifique a auditoria de alterações do AD com ADAudit Plus.

Recursos relacionados

Empresas que confiam no ADAudit Plus

Atenda a todas as necessidades de auditoria e segurança de TI
com o ADAudit Plus.