How to logoff remote desktop sessions via command line tools?

How To Password Protect USB Drives In Windows 10
July 18, 2019
How to easily set Automatic Replies (Out of Office) on Shared Mailboxes in Office 365
September 2, 2019

How to logoff remote desktop sessions via command line tools?

This trick I learned from my one of college. In Windows servers, only two remote desktop sessions allowed with administrative access. There are situations, you can’t connect to the server via remote desktop because of two sessions already active. You may have seen this dialogue box. (“Remote Desktop Disconnected”, “This computer can’t connect to the remote computer”)

Usually, Windows Administrators, open “Terminal Services Manager” (in Administrative tools), connect to the problematic server and log off the unwanted sessions. There are easy ways if you love command-line based tools.

Query the Remote Server for Current Terminal Sessions

To query and list the sessions on the remote session, you could use QUser.exe or QWinsta

1. QUser

QUser command comes with all the latest Windows clients and servers. This will list the sessions of the remote server (or local machine).

NOTE: if you are using Windows XP, you need to add this location into your System path: C:WindowsSystem32DLLCache. To do this, in command prompt, type the following. SET PATH = %PATH%;C:WindowsSystem32DLLCache;

QUser help shows,

C:Anand>QUser /?
Display information about users logged on to the system.

QUERY USER [username | sessionname | sessionid] [/SERVER:servername]
username : Identifies the username.
sessionname :  Identifies the session named sessionname.
sessionid : Identifies the session with ID sessionid.
/SERVER:servername :  The server to be queried (default is current).

E.g.,

C:>quser /server::MySVR

USERNAME  SESSIONNAME      ID         STATE       IDLE TIME     LOGON TIME
arif      ica-tcp#966      10         Active      7             7/31/2020 3:04 PM
ullah     ca-tcp#969       1          Active      9            7/31/2020 3:30 PM

2. QWinsta

QWinsta is little different and better. It has more features and options. It comes with all flavors of Windows. QWinsta command line help displays as,

C:>qwinsta /?

Display information about Terminal Sessions.
QUERY SESSION [sessionname | username | sessionid]
[/SERVER:servername] [/MODE] [/FLOW] [/CONNECT] [/COUNTER]

sessionname Identifies the session named sessionname.
username Identifies the session with user username.
sessionid Identifies the session with ID sessionid.
/SERVER:servername The server to be queried (default is current).
/MODE Display current line settings.
/FLOW Display current flow control settings.
/CONNECT Display current connect settings.
/COUNTER Display current Terminal Services counters information.

E.g.,

C:>qwinsta /server:Myserver

SESSIONNAME   USERNAME       ID         STATE         TYPE DEVICE
ica-tcp#966           johndoe               10         Active           wdica
ica-tcp#969           apple                    1            Active           wdica

You are welcome to try the other options QWinsta provides.

Logoff the Remote Sessions

To Log off the terminal session of the remote server, you can use any one of two command line tools. One of LOGOFF and another one is RWINSTA. Before you log off the remote session, you should know the “Session ID” which you get it from “QUSER” OR “QWINSTA” commands as above stated.

1. Logoff

Logoff command kicks off (logging off) the specified remote session. Log off help shows,

C:>logoff /?

Terminates a session.

LOGOFF [sessionname | sessionid] [/SERVER:servername] [/V]

sessionname The name of the session.
sessionid The ID of the session.
/SERVER:servername Specifies the Terminal server containing the user
session to log off (default is current).
/V Displays information about the actions performed.

E.g.,

C:>logoff /server:infra-apps 1 /v

Logging off session ID 1

2. RWinsta

RWinsta has same parameters and does same thing as log off command. It simply means Reset WINdows STAtion. The help goes as,

C:>RWinsta /?

Reset the session subsytem hardware and software to known initial values.

RESET SESSION {sessionname | sessionid} [/SERVER:servername] [/V]

sessionname Identifies the session with name sessionname.
sessionid Identifies the session with ID sessionid.
/SERVER:servername The server containing the session (default is current).
/V Display additional information.

E.g.,

C:>RWinsta /Server:MyServer 1

Note: RWinsta command does not return anything.

Happy Re-setting the remote sessions (Hey, stop cursing your co-workers who didn’t log off their sessions).

Leave a Reply

Your email address will not be published. Required fields are marked *