AIM-PIbd-32-Kurbanova-A-A/aimenv/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py
2024-10-02 22:15:59 +04:00

25 lines
982 B
Python

""" Finds any disconnected terminal service sessions and logs them off"""
import pywintypes
import win32ts
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