Можно ли определить, был ли интерактивный сеанс пользователя запущен автоматически по сравнению с ручным входом пользователя?

Можно ли определить, был ли интерактивный сеанс пользователя запущен автоматически по сравнению с ручным входом пользователя?

Мне нужно знать это отличие от локальной службы Windows, написанной на C++/MFC.

РЕДАКТИРОВАТЬ: "автоматически" я имею в виду первую учетную запись пользователя, которая создается после установки Windows, которая не имеет пароля. В этом случае Windows автоматически загружается в эту учетную запись после загрузки.

1 ответ

Windows не имеет автоматически запускаемых типов входа. Тип входа - один из SECURITY_LOGON_TYPE перечислимые значения. Определяется в <Ntsecapi.h> как это:

typedef enum _SECURITY_LOGON_TYPE { 
  Interactive              = 2,
  Network,
  Batch,
  Service,
  Proxy,
  Unlock,
  NetworkCleartext,
  NewCredentials,
  RemoteInteractive,
  CachedInteractive,
  CachedRemoteInteractive,
  CachedUnlock
} SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE;

Вы можете получить значение, используя LsaEnumerateLogonSessions а потом LsaGetLogonSessionData и там это как sessionData.LogonType,

Другие вопросы по тегам