Histórico de Login no Computador

Want create site? Find Free WordPress Themes and plugins.

Como Obter Histórico de Login no Computador

Esta questão é bastante relevante e é uma necessidade comum no dia-a-dia da administração de uma rede. Saber quais usuários fizeram login em qual computador ajuda a revelar como os recursos estão sendo usados.

Nas novas versões do Windows, por padrão vem habilitado a auditoria de login. Este recurso registra em log todos os acessos aos computadores. Porém, os logs do Windows nem sempre são amigáveis e fáceis de entender.

Para auxiliar nesta busca pelas informações, existem várias ferramentas com logparser e EventCombMT entre outras. Mas o powershell tem recursos suficientes para tratar esta questão de forma simples e rápida.

Powershell

Com o Powershell é possível consultar os logs do Windows e filtrar os resultados para uma melhor visualização e entendimento. Vamos ver a seguir os princípios básicos da nossa consulta.

Consultando os logs do Windows com Powershell:

PS C:\> Get-EventLog System -Source Microsoft-Windows-WinLogon -After (Get-Date).AddDays(-3)

Nesta consulta nos conseguimos obter todos os logins efetuados durante os últimos 3 dias. Porém o resultado é praticamente o mesmo que consultar o Event Viewer, normalmente não muito claro para saber o histórico de de login no computador.

Para filtrar e ter uma melhor visualização das informações podemos utilizar outros recursos do Powershell, segue abaixo o código que cria uma função chamada Get-LogonHistory:

function Get-LogonHistory{
Param (
[string]$Computer = (Read-Host Remote computer name),
[int]$Days = 10
)
cls
$Result = @()
Write-Host “Gathering Event Logs, this can take awhile…”
$ELogs = Get-EventLog System -Source Microsoft-Windows-WinLogon -After (Get-Date).AddDays(-$Days) -ComputerName $Computer
If ($ELogs)
{ Write-Host “Processing…”
ForEach ($Log in $ELogs)
{ If ($Log.InstanceId -eq 7001)
{ $ET = “Logon”
}
ElseIf ($Log.InstanceId -eq 7002)
{ $ET = “Logoff”
}
Else
{ Continue
}
$Result += New-Object PSObject -Property @{
Time = $Log.TimeWritten
‘Event Type’ = $ET
User = (New-Object System.Security.Principal.SecurityIdentifier $Log.ReplacementStrings[1]).Translate([System.Security.Principal.NTAccount])
}
}
$Result | Select Time,”Event Type”,User | Sort Time -Descending | Out-GridView
Write-Host “Done.”
}
Else
{ Write-Host “Problem with $Computer.”
Write-Host “If you see a ‘Network Path not found’ error, try starting the Remote Registry service on that computer.”
Write-Host “Or there are no logon/logoff events (XP requires auditing be turned on)”
}
}

Após executar o código acima basta executar a função na linha de comando do powershell para obter o histórico de login no computador.

PS C:\> Get-LogonHistory

Remote computer name: <Nome do Computador>

Caso você deseje obter o histórico de login no computador local basta digitar o hostname.

Caso você queira pegar um histórico mais antigo, basta alterar a seguinte linha:

[int]$Days = 10

Onde 10 é a quantidade de dias de histórico de login no computador.

Did you find apk for android? You can find new Free Android Games and apps.
Contato Rápido

Escreva sua mensagem que o mais rápido possível retornaremos!

Start typing and press Enter to search