Я пишу приложение службы Windows, которое прослушивает подключения и выполняет определенные задачи в соответствии с инструкциями другого приложения, запущенного на другом компьютере в сети.
Одна из задач гарантирует, что в данный момент ни один пользователь не вошел в систему, заблокирует рабочую станцию, удалит некоторые файлы и перезапустит систему. Я решил использовать это решение , чтобы просмотреть список запущенных процессов и проверить имена пользователей, определяя, не вошел ли пользователь в систему, сопоставляя имена пользователей с SYSTEM, NETWORK и т. Д. Я понял, что у меня запущен PostgreSQL который использует учетную запись пользователя с именем postgres, так что не будет работать. Проверка, работает ли explorer.exe, также не будет работать, потому что иногда происходит сбой проводника, или я иногда сам заканчиваю процесс и перезапускаю его.
Что было бы хорошим способом определить, что НЕТ пользователь не вошел на рабочую станцию с использованием C #?