22 lines
950 B
Python
22 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
|