Languages

terminal server

Disconnecting windows remote desktop (terminal server) users

You are trying to connect via remote desktop (terminal server) to the server, but you find out there's too much people already connected. You get the damn message:

You can't connect!

What can I do? Is easy. As we already have our brand new tool winexe, we can make a little script to make our lives easier:

#!/bin/bash

[ $# -lt 1 ] && echo "Error: Missing argument" && echo "Use: $0 server [disc #session]" && exit

[ ! -z "$2" ] && [ $2 != disc ] && echo "Error: Can't understand second argument" && echo "Use: $0 server [disc #session]" && exit
[ "$2" == "disc" ] && echo "Disconnecting session $3 from server $1..." && winexe //$1 "logoff $3" -A secretfile && exit
echo "Listing server $1 sessions:"
winexe //$1 "query session" -A secretfile

File "secretfile" is optional, just in case you don't want to type user and pass. Contents are:

domain=YOURDOMAIN
username=user
password=pass

That's an poorly error-controlled script, but it allows you to watch who is connected:

user@server:~/$ ts.sh server2
Listing server server2 sessions:
SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
>                            user1                          0    Disc    rdpwd
rdp-tcp                                 65536  Listen  rdpwd
                   Administrator             3  Disc    rdpwd
                   user2                     1  Disc    rdpwd
console                                     5  Conn    wdcon
user@server:~/$

In this server you can't login, there are too much users. We can see everybody is "disconnected", so there is no one working. We choose the user we like the least, and we kick him out:

user@server:~/$ ts.sh server2 disc 1
Disconnecting session 1 from server server2...
user@server:~/$ ts.sh server2
Listing server server2 sessions:
SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
>                  user1                  0  Disc    rdpwd
rdp-tcp                                 65536  Listen  rdpwd
                   Administrator             3  Disc    rdpwd
console                                     5  Conn    wdcon

Et voilà, we just get a free session to connect to admin this server.

Obviously, is way better if everybody logs off when they end working. But if you have to share your servers with absentminded admins, you must take care of yourself...

Syndicate content