The first step is to find out the user_id of the user that we wish to remove. You can do this by running something like the following, but substituting the string in the LIKE expression to find the user in question:
SELECT *
FROM users
WHERE LOWER(user_name) LIKE LOWER('%PSN9954%');
Having got the user_id we disable their session. A few versions ago this involved removing rows from a number of tables, but with the introduction of the background jobs life has become far easier. All we need to do is mark the record from the USESSION table by setting the delete_session_id to zero and giving the delete_date column a value, which I take from the system date. The example code below assumes the user_id is 123.
UPDATE usession
SET delete_session_id=0, delete_date=GETDATE()
WHERE user_id = 999;
So long as background jobs are running properly, and they should be, they will delete the user session record within a minute at most.
In order to give users the option to override their own sessions the following can be added to their PM.ini file:
[Database]
DeleteCurrentUserSessions=TRUE
Note in P6 8.0 this is now available in the user interface of the Web Application.
For more details see this article.
http://usingp6.com/administrator/2011/10/14/end-p6-user-session.html