32

How do I log a disconnected user off remotely?

For example, I remotely connect to a computer (with Dameware, if that matters) and run a command that takes a significant amount of time to complete. In that time I move on to other things. When I come back, (the command has presumably completed successfully) another user has switched to their account, leaving my account status as "Disconnected". How can I remotely log off my account without having to take control of the computer, switch to my account, log off, and have the user log in again?

7 Answers7

61
  1. First, check the session number with qwinsta:

     QWINSTA /server:YOURCOMPUTERNAMEHERE
    

Write down the session ID.

  1. Then use the logoff command:

     LOGOFF YOURSESSIONIDHERE /server:YOURCOMPUTERNAMEHERE
    

See if that works.

[Edit] You can limit the query so it only shows the session id for the user that you want to log off.

In order to do that you the username name to the command, like: QWINSTA /server:YOURCOMPUTERNAMEHERE USER

Luiz Angelo
  • 1,437
3

Remotely logoff a user by username in one command:

logoff /server:"servername" | qwinsta /server:"servername" "username"
techraf
  • 4,952
1

If you have PSTOOLS installed, this is SUPER easy. If you do not have PSTOOLS installed, please do so. You may want to copy all of the .exes to your C:\Windows\system32 directory. (in all fairness, if you don't have PS tools and you're a systemadmin... you don't know what you are missing!)

Now, run CMD.exe as an administrator on the local PC, input your admin credentials if/when prompted. Now type "psexec \\hostname cmd.exe" This command will run CMD.exe as your account, remotely, as if you are actually at the machine. In the title bar of the command prompt, you will see the remote host name called out when you have successfully connected.

Now type "query session". this will now print out all the sessions that are available active/inactive, you'll want to note the Session ID #.

now type in "logoff #" where # = the session id you took note of previously.

You could do this with home based network PCs, but you'll have to have the same account on BOTH systems, and it could get a little tricky.

This will DEFINITELY work with domain PCs as I have tested it several times now.

1

I believe you can do this with logoff from the command line (assuming the machine you're remoting into is Windows). If I understand your question correctly, a user logs in while you're away from your remote session and logs in under a different account. You will be able to log off from their account via cmd.

root
  • 3,920
1

For most versions of Windows: Log in to the system using an admin-enabled account. Bring up the task manager ("Windows Security" under the Start button if you RDP, "taskmgr.exe" from the command line, or any other way you prefer.) Go back to the "Users" tab. You'll see your own session & any other sessions. Select the other user's session and right-click, then choose Disconnect or Logoff (or, you can select the session and use the buttons at the bottom to do either of these.)

image of User tab in task manager

If it is a disconnected session, you can also select it, right-click, and use Connect -- this will switch you into that session instead of the one you're in. Then, of course, you can log out the session.

Chindraba
  • 2,058
Debra
  • 4,326
  • 1
  • 19
  • 24
0

I use the following PowerShell script to perform manually. It finds the user name, assigns a SessionID, then logs that user out if found. You just need to update the variables.

######>>>Variables<<<######
$ErrorActionPreference = 'silentlycontinue'
$userName = '****'
$Servers = Get-Content 'C:\Temp\Servers.txt'
######>>>Variables<<<######
DO NOT make changes below this line

#Checks for the user account on all servers listed in variables foreach ($Server in $Servers){ write-host "Searching for session login on $Server" -ForegroundColor Green qwinsta /server:$Server

#Logs out the User listed in the variables section Invoke-Command -ComputerName $Server -ScriptBlock { quser } $sessionId = ((quser /server:$Server | Where-Object { $_ -match $userName }) -split ' +')[2] $sessionId logoff $sessionId /server:$Server }

Toto
  • 19,304
-2

Doublevisionpro will allow you to log out users remotely. Run Doublevisionpro, select the user you want to log out, and then select the View command.