public static bool AreAllUsersLoggedOut()
 {
     // Open local server
     IntPtr server = Wtsapi32.WtsOpenServer(Environment.MachineName);
     try
     {
         // Get user sessions and logout each user
         return GetSessionIDs(server).All(id => WellKnownSessionIds.Contains(id));
     }
     finally
     {
         Wtsapi32.WtsCloseServer(server);
     }
 }
        public static void LogoutAllUsers()
        {
            // Open local server
            IntPtr server = Wtsapi32.WtsOpenServer(Environment.MachineName);

            try
            {
                // Get user sessions and logout each user
                foreach (int sessionId in GetSessionIDs(server).Where(id => !WellKnownSessionIds.Contains(id)))
                {
                    // Get Username
                    string? username = GetUsername(server, sessionId);
                    if (string.IsNullOrWhiteSpace(username))
                        continue;

                    Wtsapi32.WtsLogoffSession(server, sessionId, false);
                }
            }
            finally
            {
                Wtsapi32.WtsCloseServer(server);
            }
        }