Como posso saber quem está conectado ativamente (local ou remotamente) em um PC com Windows 7?


14

No meu PC com Windows 7, desejo verificar quem está "ativamente" conectado a outro PC com Windows 7 na minha rede, não quem está conectado por último. Como isso pode ser feito?

Durante o dia, várias pessoas efetuam logon remotamente em um computador compartilhado, geralmente efetuando logoff quando terminam. Observe que esses usuários têm direitos de administrador nos computadores deles e no computador remoto. Se eu fizer logon enquanto outra pessoa estiver ativamente conectada, tenho a opção de continuar e me tornar o usuário "ativo", colocando a conta ativa anterior em um estado desconectado. Seria bom ver quem está conectado ativamente antes de fazer essa escolha.

Pesquisei na web e encontrei várias soluções que informam quem fez a última conexão, o que não se traduz em sendo o último ou atualmente "ativo" usuário.

Em uma nota lateral, parece estranho no Windows 7 que o ID do usuário ativo e atual seja exibido 'depois de' clicar em 'Sim' para fazer login sobre eles. Quando estávamos usando o Windows XP, era possível ver o ID do usuário ativo atual 'antes' de decidir continuar o logon.

Qualquer ajuda é apreciada.

Respostas:


11

Você pode usar o comando de consulta dos Serviços de Terminal para isso.

query session /server:remote_computer_name_here

Observe que você precisará definir o seguinte valor do registro no computador remoto:

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
Value Name: AllowRemoteRPC
Value: 1
Type: REG_DWORD

Você pode colocar o comando query em um arquivo em lotes, para que os usuários possam clicar duas vezes nele para ver quem está conectado ao computador.


10

Você pode usar a ferramenta PSLoggedOn do Windows Sysinternals .

Uso: psloggedon [-] [-l] [-x] [\\ nome_do_computador | nome do usuário]

- Exibe as opções suportadas e as unidades de medida usadas para os valores de saída.

-l Mostra apenas logons locais em vez de logons de recursos locais e de rede.

- x Não mostra os horários de logon.

\\ nome_do_computador Especifica o nome do computador para o qual listar informações de logon.

nome de usuário Se você especificar um nome de usuário, o PsLoggedOn pesquisará na rede os computadores nos quais esse usuário está conectado. Isso é útil se você deseja garantir que um usuário específico não esteja conectado quando estiver prestes a alterar a configuração do perfil do usuário.


Vale a pena notar que o PSLoggedOn exige Remote Registry Serviceque esteja em execução no computador de destino. Este serviço não é iniciado por padrão.
Eu digo Restabelecer Monica

3

Outra opção da linha de comando do Windows 7 ou superior:

tasklist /s computername /fi "imagename eq explorer.exe" /v

Você pode ser solicitado a fornecer credenciais em nível de administrador se estiver consultando uma máquina remota.

Isso verificará se o explorer.exe está sendo executado em uma máquina e "/ v" fornece o nome de usuário. Se uma máquina não estiver conectada, nenhum processo explorer.exe será executado. Se alguém estiver conectado, o processo explorer.exe será executado no contexto desse usuário.


O caso (raro) em que isso não funciona é se o shell da máquina remota não estiver explorer.exe. Raro, mas possível.
Eu digo Restabelecer Monica

1

O wmiccomando no prompt de comando pode recuperar essas informações. No entanto, para que os clientes respondam, primeiro é necessária uma regra de firewall.

Encontrei um post em community.spiceworks.com, graças ao MacKingTosh que parece corrigir o erro 'error - o servidor RPC está indisponível'.

O comando a ser executado nos clientes que produzem esse erro é:

netsh firewall set service remoteadmin enable

Você pode verificar se isso está de acordo com as políticas de firewall.

Ao usar wmic, aqui está uma descrição dos parâmetros que você pode passar:

  • /node: - os servidores nos quais o alias operará
  • yourpcname - o nome do PC
  • computersystem - é um sistema de computador que estamos tentando obter informações sobre
  • get - queremos obter as informações
  • username - o usuário conectado
  • model - o modelo do computador
  • manufacturer - o nome da empresa que fabricou o computador
  • name - o nome do PC

Alguns exemplos:

Obtenha um nome de usuário:

wmic /node: 'yourpcname' computersystem get username

Obtenha uma marca e modelo para PC:

wmic /node: 'yourpcname' computersystem get manufacturer, model

Obtenha todos os três:

wmic /node: 'yourpcname' computersystem get manufacturer, model, username

A adição de campos extras pode ser feita usando uma vírgula e um espaço:

Model, manufacturer, username, name

Os exemplos acima são para um PC remoto e a consulta é realizada na rede. Se o comando for executado localmente, ele terá uma sintaxe ligeiramente diferente. Por exemplo:

wmic computersystem get manufacturer, model, username
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.