且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

检查用户空闲时间

更新时间:2023-11-22 08:07:52

粗心回答我自己的问题吗? cmd +查询用户{username}"的输出是
用户名-会话名-ID-状态-空闲时间-登录时间
to rudely answer my own question -> cmd + "query user {username}" the output is
Username - Sessionname - ID - State - Idle Time - Logon Time


如果RDP会话在空闲时被锁定,则可以使用以下逻辑进行检查.
如何在系统锁定后将系统音量静音 [ ^ ]
If the RDP session get''s locked on idle then you can check using following logic.
How to mute the system volume after system lock[^]


我实际上找到了另一种效果很好的解决方案-使用
I actually found another solution, that works quite well - using Cassia

ITerminalServicesManager manager = new TerminalServicesManager();
            using (ITerminalServer server = manager.GetLocalServer())
            {
                server.Open();
                foreach (ITerminalServicesSession session in                    server.GetSessions())
                { 
                    NTAccount account = session.UserAccount;
                    if (session.IdleTime > minutes && account != null && account.ToString().Contains("admin") == false)
                    {

                        listBox1.Items.Add(session.UserAccount + " " + DateTime.Now.ToString());
                        session.Disconnect();
                        Settings.Default.amount++;
                        Settings.Default.Save();
                        label1.Text = "Accounts disconnected: " + Settings.Default.amount.ToString();
                    }
                    else { }
                }
            
            }