Existe uma maneira de determinar o endereço IP de um cliente de área de trabalho remota usando o PowerShell (ou algum outro método) no servidor? (Windows Server 2008 R2 x64 é o que estou usando)
EDIT: Eu acho que posso grep stdout do netstat para recuperar essas informações que são muito viáveis, então como posso disparar um script / comando shell quando um cliente se conecta?
Respostas:
Em um prompt de comando, você pode executar o seguinte comando para obter uma lista dos IPs remotos conectados ao RDP (porta 3389).
Estou certo de que isso pode ser script no PowerShell (ou até mesmo em um simples arquivo em lote antigo). Posso dar um exemplo amanhã, se você estiver interessado.
fonte
Tudo bem, eu descobri que o
task scheduler
aplicativo que acompanha o Windows é configurável para onde eu possa executar um script em lote, acionado quando um evento no log de eventos é gerado. Por meio da interface do usuário, você escolhe o tipo de evento, a fonte do evento e o ID do evento. Nesse caso, usei o 4264 (e sim captura todos os tipos de logon). Aqui, usei um script em lote simples:Também encontrei um exemplo super útil sobre como assinar / ouvir gravações de eventos no .NET: http://msdn.microsoft.com/en-us/library/bb552514(v=vs.90).aspx I ' em vez disso, acabarei usando isso para gravar determinados eventos em um banco de dados para exame baseado na Web.
A única desvantagem desta solução é que, se você tiver os Serviços de Área de Trabalho Remota ativados e várias pessoas estiverem conectadas, não poderá diferenciar entre elas na saída netstat.
fonte
Se você não precisar criar um script, poderá procurar no log de eventos de segurança a identificação de evento 4624. Haverá uma linha:
Endereço de rede de origem: 192.168.xxx.xxx
fonte