Identifica se um servidor é acessado atualmente via Conexão de Área de Trabalho Remota

3

Por exemplo, eu tenho um servidor que é usado por 4 pessoas e há apenas uma conta nesse servidor. Sabemos que quando alguém já está acessando e outro usuário acessou o servidor, o usuário atual será desconectado.

Existe alguma maneira de identificar se um servidor é acessado atualmente via Conexão de Área de Trabalho Remota para evitar a interrupção indesejada do usuário ativo.

    
por stack 26.08.2015 / 05:42

4 respostas

5

Isso se aplica aos seguintes sistemas operacionais: Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 e Windows VistaTentar este comando

query session [<SessionName> | <UserName> | <SessionID>] [/server:<ServerName>] [/mode] [/flow] [/connect] [/counter]

Isso deve fornecer uma saída como a seguinte:

C:\>query session
 SESSIONNAME    USERNAME       ID STATE  TYPE   DEVICE
>console        Administrator1  0 active wdcon
 rdp-tcp#1      User1           1 active wdtshare
 rdp-tcp                        2 listen wdtshare
                                4 idle
                                5 idle

Origem

Espero que isso ajude.

    
por 26.08.2015 / 09:47
0

EDIT: Sobre a resposta do netstat, porém você correu que você está definitivamente melhor executando o qwinsta.

EDIT: qwinsta pode ser executado em um servidor remoto. Eu recomendo que acima PsLoggedOn por alguns motivos.

Você pode usar o PsExec (de PsTools , é algo como psexec.exe \remote -u remote_username -p remote_passwd cmd.exe para obter um shell remoto e execute quser ou qwinsta para enumerar as sessões ativas. Você precisa de admin e acredito que o compartilhamento de arquivos (ele usa o padrão C $ / ADMIN $, que determinadas instâncias iniciais não possuem). É um pouco mais irritante em um ambiente de grupo de trabalho.

Provavelmente estou sentindo falta de algo mais simples, como o fato de o quser poder ser executado em outro servidor (pode não caber neste caso de uso) ou você pode executar o quser diretamente em vez de ter um shell primeiro (você provavelmente pode) Vou acrescentar que uma vez alguém testou ou me disse nos comentários.

    
por 26.08.2015 / 05:50
0

As plataformas Windows Server suportam várias sessões RDP simultâneas - geralmente, até duas - e avisam o usuário se ele está tentando se conectar a um servidor que já está no seu máximo. Portanto, a situação que você descreve poderia ser completamente evitada simplesmente criando contas de usuário separadas para cada pessoa - que é uma prática recomendada de segurança para começar.

Sem contas de usuários individuais, você certamente encontrará problemas de compartilhamento de recursos como este. Mas você também não poderá gerenciar individualmente permissões de usuários, nem será capaz de distinguir uma pessoa de outra em logs de eventos.

Mesmo em uma plataforma que não seja do servidor (por exemplo, Windows 7, Windows 8.1, Windows 10 etc.), seu cenário não seria um problema se você tivesse contas de usuário atribuídas individualmente. Essas plataformas permitem que apenas uma sessão esteja ativa por vez. Quando um usuário do RDP se conecta e já existe uma sessão ativa, uma das três coisas acontecerá:

  • Se a conta usada para se conectar for a mesma do proprietário da sessão ativa, a conexão será estabelecida. Conexões RDP pré-existentes para esse usuário serão descartadas. Se a sessão pré-existente do usuário estiver no console local, o console será expulso para a "tela de bloqueio".
  • Se a conta usada para conectar não for a mesma que o proprietário da sessão ativa, e a conta não tem permissões de Administrador, a nova sessão será rejeitada. O usuário será informado de que o sistema já está em uso e a conexão será encerrada.
  • Se a conta usada para se conectar não for igual ao proprietário da sessão ativa, e a conta tem permissões de Administrador, a sessão ainda não será estabelecida imediatamente. O usuário será informado de que o sistema já está em uso e receberão a opção de forçar o usuário ativo a sair do sistema para que ele possa efetuar login. Dependendo da configuração do sistema, forçar o Uma nova sessão pode fazer com que a sessão do usuário ativo seja desconectada / bloqueada (mas ainda disponível para ser retomada posteriormente) ou, na verdade, pode ser desconectada.

Dito isso, aqui estão alguns comentários sobre as respostas existentes, bem como minha própria sugestão:

TheJulyPlot e Michael Bailey está essencialmente sugerindo a mesma coisa. QWINSTA e QUSER são atalhos para o utilitário QUERY , para as funções SESSION e USER , respectivamente. Eles podem ser executados em um computador remoto com o parâmetro /computer: , para que possam ser usados para verificar o sistema antes de você realmente se conectar.

A sugestão de jas- não é, por si só, útil para você porque exige que você já estar conectado ao sistema remoto e você está querendo verificá-lo antes de fazer isso. No entanto, se você executá-lo com o PsExec (sugerido por Michael Bailey), você poderá realizar o que deseja fazer. No entanto, existem maneiras melhores de fazer o que você precisa, com ferramentas incorporadas, assim como os outros utilitários disponíveis da Microsoft.

Se você já tem o PsTools, sugiro experimentar o PsLoggedOn em vez de usar o PsExec e o Netstat. O PsLoggedOn pode ser executado remotamente e mostra as sessões do RDP e o sistema de arquivos remoto ou as conexões de registro. A sintaxe para executar o PsLoggedOn remotamente é:

PsLoggedOn \servername

Recursos úteis adicionais:

SS64
PsLoggedOn
Query User / Quser
Sessão de consulta / Qwinsta
PsExec - Netstat

TechNet em PsTools

    
por 26.08.2015 / 20:38
-1

De um prompt de comando.

Observe o endereço local TCP escutando na porta 3306 no estado ESTABLISHED para o endereço externo 192.168.2.205

C:\Users\foo>netstat -anp tcp

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING
...
  TCP    10.0.0.248:3306        192.168.2.205:48156    ESTABLISHED 
...
  TCP    192.168.130.1:139      0.0.0.0:0              LISTENING
  TCP    192.168.233.1:139      0.0.0.0:0              LISTENING
    
por 26.08.2015 / 05:55