Como encontrar o nome do computador em que um usuário fez logon


9

Existe uma ferramenta ou script ou alguma outra maneira de saber em que nome de computador um usuário específico está conectado no momento? Ou ainda estava conectado?

Digamos que o usuário "HRDrone" esteja trabalhando em sua máquina cujo nome do host seja "HRStation01".

Eu, sentado na minha mesa sysadmin, só sei que o nome de usuário é "HRDrone". De qualquer maneira, posso descobrir que ele está conectado ao "HRStation01" sem perguntar ao usuário? Visualizador de eventos do AD? qualquer coisa?

Obrigado!


Bem, não encontrei nenhuma maneira de fazer isso usando janelas genéricas ou ferramentas de AD, mas acontece que nosso sistema AV (SEP 11) armazena as informações necessárias, então resolvi usando um script VB que consulta o banco de dados de antivírus. Eu acho que uma solução semelhante usando outro sistema como SMS / SCOM poderia ser usada.
V. Romanov

social.technet.microsoft.com/wiki/contents/articles/… aqui está uma maneira alternativa de fazer isso usando um gpo
mike brilhou

Respostas:


8

Existe um ótimo utilitário Sysinternals que fará exatamente isso por você - PsLoggedOn


O twig psloggedon não conseguiu escanear a rede em busca de um usuário específico, eu apenas o usei para descobrir quem estava em uma máquina específica. Obrigado!
JamesOff

Verifiquei. Parece interessante, mas impraticável para o uso diário, pois leva literalmente horas para varrer todas as máquinas do domínio, travando em computadores que não estão conectados e tal. Estou procurando algo mais ao longo das linhas de uma verificação de log de eventos. Temos algo semelhante em nosso sistema antivírus, onde ele registra todos os nomes de computadores e o último usuário logado nele. Eu estou usando isso às vezes, mas gostaria de saber se há algo mais "nativo" para o Windows.
Romanov V.

5

Um truque barato que costumo usar é examinar as "Sessões" listadas em "Pastas compartilhadas" no console "Gerenciamento do computador", direcionadas a um computador servidor de arquivos, onde eu sei que o usuário em questão terá uma "unidade" "mapeada".


1

Que tal isso no arquivo bat como um script de logon do usuário? Execute-o e você verá a diversão

mkdir %username% 
pushd %username% 
net config workstation > %computername%.txt

OU se você precisar em detalhes

mkdir %username% 
pushd %username% 
@echo off
echo
echo I am logged on as %UserName%. >> %username%\%computername%.txt
echo My computer's name is %ComputerName%. >> %computername%.txt
echo %Date% >> %computername%.txt
echo %Time% >> %computername%.txt
echo My IP settings are >> %computername%.txt
ipconfig | find "." | find /i /v "suffix" >> %computername%.txt
getmac >> %computername%.txt
echo\

você pode entrar em contato comigo para obter mais scripts, se precisar, é um bom aprendizado para mim também


0

Não sei se há algo ativo, mas o Log de Eventos de Segurança registra logins dos usuários. Acessar o log de eventos nos controladores de domínio deve poder fornecer essas informações. Desde que as informações estejam sendo coletadas. Eu acho que é uma configuração de política.

Esta página da Microsoft descreve uma maneira muito lenta e complicada de consultar os logs de eventos: http://technet.microsoft.com/en-us/library/ee176699.aspx

Tenho certeza de que isso não irá ajudá-lo, mas pode funcionar como uma auditoria. Ou seja, quem estava logado quando as coisas ruins aconteceram!


0

Eu tive que resolver esse problema para fazer suporte remoto em toda a minha empresa. Coisas como PsLoggedOn e ferramentas para verificar os logs de segurança do controlador de domínio provaram ser muito lentas para meus propósitos (fazer com que o nome do host fizesse suporte remoto para os usuários). Aqui está o que eu vim com:

  • Todos os usuários têm uma unidade mapeada para X: no AD, na pasta Perfil - Página inicial
  • Todo mundo tem o script abaixo atribuído em Perfil - Script de logon

Esse script registra o computador em que eles efetuaram login na pasta inicial. Especificamente, eles não registram o logon no servidor de terminal, porque não me importo com essas entradas.

'===============================================================
' Record the logon in their X: drive UNLESS they are on TERM-SERVER!
'===============================================================
If strComputerName <> "TERM-SRVER" Then
    strFile = "X:\login.txt"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.OpenTextFile(strFile, 8, True)
    objTextFile.WriteLine(strIP + " - " + strComputerName + " - " + CStr(Date) + " " +     CStr(Time))
    objTextFile.Close
    ' Make it hidden
    Set objTextFile = objFSO.GetFile(strFile)
    objTextFile.Attributes = 2
End If

Depois, uso um pouco de VBscript na minha máquina local para encontrar automaticamente o diretório inicial no AD, abrir o arquivo de log e imprimir as últimas linhas.


0

Como administrador de sistema, você pode incorporar uma rotina ao script de logon para armazenar um. txtarquivo com o nome de usuário e o nome do host ou use o sqlite.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.