WMI не работает при событии выхода из службы Windows

#c# #wmi

#c# #wmi

Вопрос:

Я создал службу Windows для получения информации пользователя о входе в систему, выходе из системы, блокировке и разблокировке компьютера. Я использовал WMI для получения информации о пользователе, такой как имя и т.д. Служба отлично работает при входе в систему, блокировке и разблокировке, но она не может получить имя пользователя от WMI в событии выхода из системы.

Как я могу найти username в событии выхода из системы?

Мой код:

 switch (changeDescription.Reason)
{
    case SessionChangeReason.SessionLogon:
        string username = Machine.getInstance().getUsername();
        mode = Convert.ToInt32(CommonModule.sessionEvents.Logon);                            
        break;
    case SessionChangeReason.SessionLogoff:
        string username = Machine.getInstance().getUsername();
        mode = Convert.ToInt32(CommonModule.sessionEvents.Logout);                           
        break;
    case SessionChangeReason.SessionLock:
        string username = Machine.getInstance().getUsername();
        mode = Convert.ToInt32(CommonModule.sessionEvents.Lock);                            
        break;
    case SessionChangeReason.SessionUnlock:  
        string username = Machine.getInstance().getUsername();  
        mode = Convert.ToInt32(CommonModule.sessionEvents.UnLock);                            
        break;
    default:                           
        break;
}