Eu preciso encontrar o último usuário para fazer logon em um computador do AD

2

OK, eu tenho mais de 500 desktops na minha empresa e posso confirmar a partir do lastlogontimestamp quais estão ativos e quais não estão - até aí tudo bem. Agora preciso saber quem foi o último usuário a fazer logon nos ativos & o ideal é obter essa informação do Active Directory.

Os desktops estão espalhados por um campus e podem estar conectados apenas uma vez por mês, etc. Então, em vez de escrever um script que é executado no logon para identificar o usuário, etc, prefiro obter as informações de um AD se possível. Dessa forma eu não tenho que esperar mais um mês para o pc desconhecido ser ligado e, em seguida, para o usuário fazer logon e executar o meu script. Se os PCs fossem deixados ligados, eu seria capaz de interrogá-los diretamente, etc. etc. Mas, além do uso pouco frequente, eles estão desligados a maior parte do tempo. Identificar o usuário ajudaria a identificar onde o PC está localizado, etc. etc.

Eu suspeito que a informação não é mantida dentro do AD simplesmente porque eu procurei e procurei e não consigo encontrá-lo, mas não há mal nenhum em perguntar. É uma rede do Windows 2008 com XP & ganhe 7 sistemas - obrigado

    
por user118745 25.04.2012 / 21:35

2 respostas

1

Você pode fazer isso com os "eventos de logon da conta de auditoria" habilitados em seus controladores de domínio. Em seguida, pode examinar os eventos "Logon da conta" nos controladores de domínio e pesquisar entradas específicas para corresponder aos usuários / Se você precisa reunir entradas de vários controladores de domínio, pode inscrever-se nos eventos da sua estação de trabalho administrativa.

Eu acredito que uma ferramenta como o Splunk poderia ser usada para o monitoramento de eventos também.

    
por 25.04.2012 / 21:53
1

Eu escrevi um sistema para fazer exatamente isso no meu antigo emprego na Universidade. Ele usou a ferramenta% 7 do Windows 7/2008 para extrair um dump formatado em XML do log de segurança de cada controlador de domínio após um tempo específico e, em seguida, analisou esse arquivo XML para os eventos em que estou interessado.

wevtutil qe Security /r:$DC /q:"*[System[((EventID=$LogonID or EventID=$FLogonID or EventID=$LogoffID or EventID=$LockoutID) and TimeCreated[@SystemTime > '$LUFilterString'] and TimeCreated[@SystemTime < '$NowFilterString'] )]] "

Ele usava uma string de consulta com formatação XPath, portanto, eu apenas abria os eventos nos quais estava interessado (login, logoff, login com falha, bloqueio).

Em seguida, carregou os eventos processados em um banco de dados que também criei. Ele atualizou as informações de "último login" das estações de trabalho, bem como o campo "último login" para os usuários. Isso é compreensivelmente um processo em lote, embora um método em tempo real seja totalmente possível com mais habilidades em .Net do que eu possuo.

Foi útil. Conseguimos rastrear os eventos de login / out / lockout para um campus de 22.000 corpos quentes (6K dos quais estavam no campus a qualquer momento fazendo login). Durante os horários de pico, eu estava enviando quase 250.000 registros por hora.

Sim, muitos.

Uma operação registrada gera um fluxo contínuo de eventos de login nos controladores de domínio, e nós rastreamos todos eles. Era um banco de dados bastante ocupado, e acabei usando o bulk-insert para atualizar as tabelas quando elas eram executadas a cada 15 minutos.

Desde que deixou os dados em uma prática tabela do MS SQL, nós pudemos fornecer alguns dados úteis aos nossos funcionários de helpdesk. Por exemplo, qual estação (ou endereço IP) causou um bloqueio para um usuário, o último dia de estações de trabalho em que um usuário efetuou login e quais usuários efetuaram login em uma estação de trabalho específica.

    
por 25.04.2012 / 22:12