21 lines
950 B
Python
21 lines
950 B
Python
""" Finds any disconnected terminal service sessions and logs them off"""
|
|
import win32ts
|
|
import pywintypes
|
|
import winerror
|
|
sessions=win32ts.WTSEnumerateSessions(win32ts.WTS_CURRENT_SERVER_HANDLE)
|
|
for session in sessions:
|
|
"""
|
|
WTS_CONNECTSTATE_CLASS: WTSActive,WTSConnected,WTSConnectQuery,WTSShadow,WTSDisconnected,
|
|
WTSIdle,WTSListen,WTSReset,WTSDown,WTSInit
|
|
"""
|
|
if session['State']==win32ts.WTSDisconnected:
|
|
sessionid=session['SessionId']
|
|
username=win32ts.WTSQuerySessionInformation(win32ts.WTS_CURRENT_SERVER_HANDLE, sessionid, win32ts.WTSUserName)
|
|
print('Logging off disconnected user:',username)
|
|
try:
|
|
win32ts.WTSLogoffSession(win32ts.WTS_CURRENT_SERVER_HANDLE, sessionid, True)
|
|
except pywintypes.error as e:
|
|
if e.winerror == winerror.ERROR_ACCESS_DENIED:
|
|
print("Can't kill that session:", e.strerror)
|
|
else:
|
|
raise
|