Espero que em algum lugar do Active Directory o "último logon do [computador]" seja gravado / armazenado ou haja um log que eu possa analisar?
O objetivo de querer saber o último PC conectado é oferecer suporte remoto pela rede - nossos usuários se movimentam com pouca frequência, mas eu gostaria de saber que tudo o que estou consultando estava atualizando naquela manhã (quando eles se conectaram , presumivelmente) no mínimo.
Também estou considerando scripts de logon que gravam os nomes de usuário e computador em um local conhecido que eu possa referenciar, mas alguns de nossos usuários não gostam de sair por 15 dias por vez.
Se houver uma solução elegante que use scripts de login, mencione-a definitivamente - mas se funcionar apenas para desbloquear a estação, isso seria ainda melhor!
Fazemos isso via script de logon que atualiza a descrição do objeto de computador no AD.
Você precisa executar uma delegação de controle personalizada para permitir que "Usuários Autenticados" gravem a propriedade de descrição dos objetos de computador nos domínios.
Feito isso, tudo o que você precisa é de um script que gere as informações desejadas e grave as propriedades no objeto do computador. Esse script é atribuído como um script de logon por meio de um objeto de Diretiva de Grupo vinculado ao domínio.
Colocamos um carimbo de data / hora, nome de usuário e IP (s) no campo de descrição. O registro de data e hora é o primeiro porque facilita a visualização rápida de objetos de computador "antigos", classificando no campo de descrição.
Aqui está o script que eu escrevi para isso, se você quiser usá-lo como ponto de partida:
fonte
Eu tive que alcançar o mesmo resultado por razões semelhantes; de alguma forma, determinar de qual máquina um usuário específico efetuou login. Eu queria saber "antes do fato" e não consegui alterar os scripts de login do usuário, conforme discutido acima.
Usei o PowerShell no controlador de domínio em que o usuário estava se autenticando para analisar o log de eventos de segurança:
get-eventlog "Security" | where {$_.Message -like "*Username*" -AND "Source Network Address"} | export-csv C:\Temp\test.csv
Abra o .csv com o excel ou o seu editor fav e procure a entrada mais recente que mostra o Nome da conta (nome de usuário) e o Endereço de rede de origem no mesmo evento.
Pode não ser uma solução 100% confiável (dependendo dos tempos de concessão do DHCP, etc.), mas funcionou para mim.
fonte
Você pode ativar a auditoria para eventos de logon da conta. Esses eventos (incluindo o desbloqueio da estação de trabalho) serão armazenados no log de segurança do controlador de domínio.
Também existem ferramentas de terceiros que podem facilitar isso, como True Last Logon .
fonte
Eu apenas escrevo o nome do usuário (assim como outras informações, como data e hora, algumas versões do programa etc.) na descrição do computador usando um script de logon. Dessa forma, eu posso obter todas as informações dos Usuários e Computadores do AD de maneira rápida e fácil, e como um bônus, tenho uma boa maneira de identificar quais PCs ainda no AD não são usados há algum tempo (e, portanto, provavelmente máquinas mortas).
fonte
ThatGraemeGuy , obrigado pelo excelente script! Eu tive que reescrevê-lo no PowerShell, mas ainda funciona.
fonte
O truque para saber com certeza onde os usuários fizeram o último login, além das sugestões do Adam, é a agregação de logs. Se você tiver vários controladores de domínio, verifique todos eles ou centralize seu log e verifique o log único.
Algumas, talvez até a maioria das ferramentas de terceiros são inteligentes o suficiente para consultar todos os controladores de domínio. Mas se você está pensando em escrever um script para analisá-lo, não posso argumentar com força suficiente para centralizar seus logs.
fonte
Idealmente, você capturaria o seguinte para sua equipe do CSIRT para ajudar nas invstigações.
identificação do usuário efetuando login com o nome da estação de trabalho endereço MAC endereço IP Data / carimbo de data / hora tipo de login (rdp, interface etc.)
Em seguida, despeje isso em um comando sql em um banco de dados que eles possam consultar. Bits e partes são registrados em todo o lugar, mas gravar isso economiza tempo ao extrair os dados dos servidores DHCP / WINS, etc ...
fonte
A única maneira de obter as informações mais recentes é através do forrageamento de log. Use uma ferramenta como o Microsoft Operations Manager ou ferramenta gratuita como o snare para agregar logs de eventos interessantes do servidor em um local central (arquivos de texto normais ou banco de dados SQL) e use ferramentas como analisador de log ou consultas SQL para gerar o relatório desejado.
para encontrar diferentes IDs de eventos para diferentes eventos, acesse Enciclopédia de Log de Eventos
Deixe-me saber, se você deseja seguir esta rota, eu posso ajudá-lo a criar as consultas apropriadas para o analisador de logs.
fonte
Se você está procurando uma referência histórica, pode experimentar uma ferramenta de terceiros, como o Logon Central, da Motivate Systems. Ele registra todos os logons de usuário do Active Directory e fornece uma interface da Web para mineração de dados. Ele também inclui alguns gráficos muito bons que convertem estatísticas de logon em porcentagem de uso.
fonte
ind Faça login no AD
Muitas vezes, precisamos saber se o login específico faz parte do grupo de usuários de anúncios. Ou, às vezes, precisamos conhecer um grupo do AD e querer saber quem todos os logins fazem parte dele.
Existem muitas maneiras diferentes de conseguir isso.
Sigo esta etapa para criar um atalho na minha área de trabalho, onde posso encontrar facilmente os logins. Siga o processo como
INICIAR-> EXECUTAR -> rundll32 dsquery, OpenQueryWindow
Você pode encontrar todo o AD do qual faz parte usando isso.
Iniciar-> Configurações-> Painel de Controle -> Ferramentas do Administrador -> Usuários e Computadores do Active Directory Selecione o Domínio em que deseja encontrar o login, clique com o botão direito do mouse nesse domínio e escolha a opção “Localizar”.
fonte
Eu adicionaria isso como um comentário à resposta de marcusjv acima, mas como não tenho reputação, uma resposta separada terá que ser feita:
Nessa expressão -E "Endereço de rede de origem" sempre será avaliado como TRUE
Eu acho que o que você precisa é: get-eventlog "Segurança" | onde {$ .Message-like "* nome de usuário *" -E $ .Message.contains ("Endereço de rede de origem")}
fonte