Execute o aplicativo ou script na conexão RDC do Windows

6

Eu verifiquei outro segmento ( Automaticamente executar um script quando eu fizer logon no Windows ) , mas isso não resolveu o meu problema exato.

Eu preciso executar um script quando uma conexão é feita através da minha rede usando o Windows Conexão de Área de Trabalho Remota .

O thread listado acima funciona para o login inicial , no entanto, se eu não fizer logout (o que é necessário para alguns processos em execução na minha rede), então não execute o script novamente da próxima vez que alguém se conectar ao sistema usando a conexão de área de trabalho remota. Anteriormente, estávamos usando o pcAnywhere para conseguir isso, mas depois de encontrar alguns problemas gráficos com o pcAnywhere, decidimos nos afastar dele para o RDC.

Antecedentes: precisamos enviar um e-mail sempre que for feita uma conexão com determinadas máquinas. O nome de login será sempre o mesmo para esses sistemas e não faremos logoff ao fechar a conexão.

    
por Nick Larsen 22.03.2010 / 21:45

4 respostas

4

Ao meu conhecimento, o Windows não fornece um método interno para executar um programa ou script em conexão , apenas faça o logon. Você precisará encontrar um programa que se registre no Windows (usando WTSRegisterSessionNotification ) e ouve o WM_WTSSESSION_CHANGE message.

Um programa que faz o acima, receberá notificações do Windows sobre logons de usuários, logoffs, conexões, desconexões e todos os eventos necessários para iniciar um script na conexão, assim como fazer logon.

Na minha cabeça, não conheço nenhum aplicativo (além do pcAnywhere) que possa fazer isso.

    
por 30.03.2010 / 15:53
7

Você pode fazer uma nova tarefa agendada e definir o acionador para "No momento de uma nova conexão com uma sessão de usuário"

    
por 17.10.2012 / 14:08
0

Se você estiver familiarizado com a programação em .net, convém analisar este tópico em Estouro de pilha .

De acordo com Steven A. Lowe:

allegedly,

System.Windows.Forms.SystemInformation.TerminalServerSession will be true for a remote desktop session (or VNC session)

Você também pode monitorar uma conexão no RDP, que por padrão é o TCP 3389.

    
por 30.03.2010 / 16:19
0

Usar o gatilho "Na conexão com a sessão do usuário"

Nota: Eu só notei que a pergunta está marcada como "XP" / "Server2008". O que está aqui só pode funcionar no Vista / 2008R2 em diante.

O agendador de tarefas do Windows possui um acionador predefinido para isso. É chamado On connection to user session .

Também permite distinguir entre usuários e entre conexões locais ou remotas.

O padrão ao criar esse acionador: Any user e Connection from remote computer . Isso parece ser o que você quer, então você não precisa mudar isso.

Screenshot aqui:

Fonte:MicrosoftTechNet: Agendador de Tarefas | Triggers (Arquivado aqui .)

Leitura adicional

Quando você exportar essa tarefa e, em seguida, olhar dentro do arquivo, verá que esse é um acionador do tipo SessionStateChangeTrigger : HáumadocumentaçãodetalhadanoMSDN:

por 18.01.2017 / 09:51