Я изо всех сил пытаюсь понять все SECURITY_LOGON_TYPE ценности:
typedef enum _SECURITY_LOGON_TYPE {
Interactive = 2,
Network,
Batch,
Service,
Proxy,
Unlock,
NetworkCleartext,
NewCredentials,
RemoteInteractive,
CachedInteractive,
CachedRemoteInteractive,
CachedUnlock
} SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE;
Я пытаюсь понять их в контексте кода C ++, подобного этому, который перечисляет все сеансы входа в систему:
//Error handling is skipped!
ULONG n = 0;
LUID* pluid;
LsaEnumerateLogonSessions(&n, &pluid);
for(ULONG s = 0; s < n; s++)
{
PSECURITY_LOGON_SESSION_DATA* ps;
LsaGetLogonSessionData(&pluid[s], &ps);
//Analyze logon type
ps->LogonType;
LsaFreeReturnBuffer(ps);
}
LsaFreeReturnBuffer(pluid);
Пока я могу понять это:
Interactive
если фактический (человек) пользователь вошел в систему на рабочей станции. (Как мы сейчас при просмотре этой страницы.)
RemoteInteractive
если Подключение к удаленному рабочему столу был установлен с этой рабочей станцией.
Может ли кто-нибудь добавить описание к другим ценностям?
Все объяснения MSDN довольно понятны, со следующими пояснениями:
CachedXXXX
— не просить контроллер домена подтвердить; вместо этого проверьте локальную кэшированную копию учетных данных.Batch
— Запланированные задачи выполняются с использованием типа пакетного входа. Вы можете отказать в праве пакетного входа, что помешает пользователю запускать запланированные задачи.Других решений пока нет …