Como verificar o status do usuário do domínio do Windows?

1

Eu tenho um servidor executando o Windows 2000 agora, atualizarei para 2003 em breve. Existe uma maneira de verificar o status do usuário e o status do computador?

Por exemplo,

  • Se o usuário estiver ocioso
  • Se o computador estiver bloqueado
  • Por quanto tempo o usuário fez login

Não importa se não funciona no Windows 2000, mas será ótimo se funcionar.

Obrigado por qualquer ajuda :)

    
por saint 23.07.2009 / 16:02

3 respostas

2

Não há nenhuma funcionalidade incorporada para fazer qualquer uma das coisas que você está solicitando no servidor ou no sistema operacional do cliente (e você não verá nenhuma nova funcionalidade passando do W2K para o W2K3 em seus servidores ). Você vai ter que codificar algo para conseguir o que deseja.

Em relação ao computador servidor, "logon" não significa o que você acha que faz. Um logon "Interativo" em um computador cliente definitivamente tem uma hora inicial e uma hora final. O "logon" do cliente para os computadores servidores remotos dependerá do que o cliente está fazendo. Os logons dos Serviços de Terminal de um cliente para um servidor são "Interativos" e compartilham as propriedades da sessão "Interativa" do próprio cliente.

Suponho que você provavelmente deseje saber a duração da sessão "Interativa" em um computador cliente. Você pode consultar a classe WMI Win32_LogonSession como uma maneira de obter essa informação.

Acho que você está pensando em usar os logs de eventos em um computador servidor para descobrir quando os computadores cliente passam por um logon "Interativo". Você não pode.

Executar a autenticação de domínio inicial ou acessar uma "unidade" mapeada "em um computador servidor de um computador cliente é um logon de" Rede "e os horários associados ao logon e logoff se relacionarão quando o cliente começar a acessar o recurso e quando o cliente (ou servidor) fecha a conexão para inatividade (ou um logoff "não mapeado" ou "Interativo" da sessão do cliente do usuário).

Você não deve pensar em "Logons de Domínio" ou em sessões de Arquivo e Impressão da Microsoft como sessões SSH ou TELNET em ter uma duração fixa que começa quando o usuário "efetua logon" e termina quando o usuário "efetua logoff". A conexão com o computador servidor pode subir e descer durante o uso normal do computador cliente. Usar o log de eventos do lado do servidor para determinar a duração de uma sessão "Interativa" em um computador cliente não é bom.

Há um código de exemplo aqui para detectar se a estação de trabalho está bloqueada: link Novamente, você pode adaptar que de C # para qualquer linguagem que possa chamar as APIs necessárias.

Parece que o resto do que você quer saber está no estado do protetor de tela, principalmente. Aqui está um artigo da Microsoft que descreve a verificação do estado do protetor de tela com uma chamada de API do Win32 (usando VB no exemplo, mas você pode fazê-lo em qualquer idioma que permita chamar essa API): link

Se você definir "inativo" como a proteção de tela em execução, poderá obter "ociosidade" da mesma maneira. Se você tem alguma definição diferente de "ocioso", então você está sozinho - o sistema operacional não o ajudará com isso.

    
por 23.07.2009 / 18:01
0

Eu não me lembro se isso funciona em 2000, mas o MMC de Gerenciamento de Servidor de Arquivos deve permitir que você veja por quanto tempo uma sessão no servidor de arquivos foi aberta e por quanto tempo a sessão ficou inativa. Isso não refletirá necessariamente o estado completo do cliente.

Eu não acredito que você possa descobrir se o PC está bloqueado no servidor de arquivos. No entanto, estou razoavelmente certo de que um script no cliente poderia.

    
por 23.07.2009 / 17:36
0

Eu não sei exatamente qual é o seu objetivo (ou qual problema você está resolvendo), mas se você tiver um software de área de trabalho remota como o VNC trabalhando no cliente, poderá fazer login nele para ver o que está acontecendo no console. Só tem que lembrar que a versão gratuita não tem criptografia disponível; Parecia que você queria verificar o que as máquinas clientes estavam fazendo quando você quer atualizá-las.

Uma maneira possível de fazer isso é, no servidor que os clientes usariam, clique com o botão direito do mouse no computador, acesse o link gerenciar e verifique as sessões abertas e abra a lista de arquivos, se tiver o VNC nesses clientes, conecte-se ao IP's e ver o que está acontecendo.

Ou você pode usar "net send" em um prompt de comando para transmitir que você precisa que todos façam logoff do sistema.

    
por 23.07.2009 / 18:24