Я создал службу Windows, которая записывает каждый сеанс Windows.Когда машина перезапущена , она не запускает событие SessionLogOff
, а SessionLogOn
.Моя идея состоит в том, чтобы автоматически регистрировать время активного сеанса пользователя для некоторых целей аудита.Машина является одной рукой пользователя.Ниже приведен фрагмент кода:
public class EventTrackerWindowsService : ServiceBase
{
protected override void OnSessionChange(SessionChangeDescription changeDescription)
{
CustomLogger.LogAuditTrail($"SessionEvent: [{changeDescription.Reason}]");
//Some Other codes
switch (changeDescription.Reason)
{
case SessionChangeReason.ConsoleConnect:
case SessionChangeReason.ConsoleDisconnect:
case SessionChangeReason.RemoteConnect:
case SessionChangeReason.RemoteDisconnect:
case SessionChangeReason.SessionRemoteControl:
CustomLogger.LogAuditTrail($"Session {changeDescription.Reason} is Excluded. SessionID: [{sessionID}] Username: [{username}]");
break;
default:// SessionLock && SessionUnlock
CustomLogger.LogAuditTrail($"SessionID: [{sessionID}] Username: [{ username }]");
PostSessionDetails(changeDescription);
break;
}
//Some other codes....
}
}
//Some other codes....
Есть ли другой обходной путь?