Como posso verificar em quais máquinas estou logado em um domínio?

5

Eu sempre me encontro com RDP em várias máquinas e tenho o tempo limite de conexão, mantendo-me logado. Eu então esqueço onde estive e minha conta permanece conectada, impedindo que outros usuários acessem essas máquinas.

Existe alguma maneira de consultar um usuário em um domínio e listar todas as máquinas em que o usuário está logado?

    
por Sio 11.02.2013 / 13:37

3 respostas

4

Você pode usar o PowerShell para encontrar onde o usuário está conectado. Você precisará dos cmdlets do Active Directory:

# Import the Active Directory module for the Get-ADComputer CmdLet
Import-Module ActiveDirectory

# Query Active Directory for computers running a Server operating system
$Servers = Get-ADComputer -Filter {OperatingSystem -like "*server*"}

# Loop through the list to query each server for login sessions
ForEach ($Server in $Servers) {
    $ServerName = $Server.Name

    # When running interactively, uncomment the Write-Host line below to show which server is being queried
    # Write-Host "Querying $ServerName"

    # Run the qwinsta.exe and parse the output
    $queryResults = (qwinsta /server:$ServerName | foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv) 

    # Pull the session information from each instance
    ForEach ($queryResult in $queryResults) {
        $RDPUser = $queryResult.USERNAME
        $sessionType = $queryResult.SESSIONNAME

        # We only want to display where a "person" is logged in. Otherwise unused sessions show up as USERNAME as a number
        If (($RDPUser -match "[a-z]") -and ($RDPUser -ne $NULL)) { 
            # When running interactively, uncomment the Write-Host line below to show the output to screen
            # Write-Host $ServerName logged in by $RDPUser on $sessionType
            $SessionList = $SessionList + "'n'n" + $ServerName + " logged in by " + $RDPUser + " on " + $sessionType
        }
    }
}


# When running interactively, uncomment the Write-Host line below to see the full list on screen
$SessionList

Você só precisará ajustar isso para sua situação. (isto é, computadores e servidores, não apenas servidores)

    
por 11.02.2013 / 14:02
3

Is there any way to query a user on a domain and list all the machines that user is logged into?

Não. Não é assim que funciona; Não há nada como um atributo ~ IsLoggedOnTo que é anexado ao objeto de usuário no AD. A lista de usuários registrados é uma propriedade / atributo de cada computador individualmente, então você teria que consultar cada computador individualmente.

Eu provavelmente usaria o PowerShell e o snap-in TS Manager / Serviços de Área de Trabalho Remota do MMC para descobrir ... se não fosse muito mais fácil apenas lembrar ou criar o hábito de fazer logout , em vez de fechar minhas janelas RDP.

    
por 11.02.2013 / 14:33
-1

Então - obtenha uma lista de todos os servidores em seu domínio (e / ou qualquer máquina que esteja em questão.) Coloque-a em um arquivo chamado servers.txt. Executar:

 for /f %s in (servers.txt) do (echo %s & qwinsta /server:%s )

- exemplo de arquivo txt -

 server1
 server2
 server3
    
por 07.05.2015 / 21:39