Localizar quando um usuário efetuou login pela última vez

0

Estou tentando descobrir uma maneira de ver todas as contas de usuário do AD em um computador específico e, em seguida, ver quanto tempo ela passou desde que cada uma delas assinou pela última vez esse computador específico. Eu encontrei um script PS para fazer isso, mas o problema era que ele mostraria a última vez que esses usuários efetuaram login no AD em geral, não naquele computador específico. Para adicionar algum contexto, terei que usar o script para limpar usuários locais do AD de computadores que não fizeram logon novamente nesse computador específico por 90 dias. Também sou relativamente novo no PS. Obrigado em adiantado para quem ajuda!

Roteiro antigo:

$data = @() 
$NetLogs = Get-WmiObject Win32_NetworkLoginProfile -ComputerName "PC-NAME";
foreach ($NetLog in $NetLogs) { 
if ($NetLog.LastLogon -match "(\d{14})") { 
$row = "" | Select Name,LogonTime 
$row.Name = $NetLog.Name 
$row.LogonTime=[datetime]::ParseExact($matches[0], "yyyyMMddHHmmss", $null) 
$data += $row
} 
} 
$data

Onde recebi o script antigo:

link

    
por Austin 28.02.2017 / 23:01

1 resposta

0

A maneira de fazer isso é executar um script de logon que registra data, nome de usuário e nome do host toda vez que um usuário efetua logon no domínio; você pode definir isso no Active Directory. Você precisaria apenas analisar esse local de log centralizado onde você salvaria essas informações.

Outra possibilidade é analisar o log do controlador de domínio, mas isso se mostrou lento e impraticável para nós.

Você pode verificar o arquivo C:\Users\<user>\NTUSER.DAT : se a data da última modificação for anterior a 90 dias ... zap o perfil!

    
por 28.02.2017 / 23:58