none
EventLog.EntryWritten отлавливает одно и то же событие RRS feed

  • Вопрос

  • Пишу Windows-службу, которая отлавливает события входа-выхода пользователей.

    Делает это при помощи отслеживания журнала "Безопасность" со включенной политике аудита входа в систему.

    Для отлавливания записей использую событие EventLog.EntryWritten.

    В WinXP всё происходило как надо, но в Win7 отлавливается только первое событие. Например, первое, что произошло после запуска службы - это выход пользователя из системы. Если после этого произошло ещё 7 каких-нибудь других событий - то каждый раз будет отлавливаться именно то, первое событие (и идентификатор, и всё остальное будет совпадать).

    Использовал GUI-компонент.

    Вот код:

        private void eventLog1_EntryWritten(object sender, EntryWrittenEventArgs e)
        {
          PrintEvent(e.Entry);
    
        }
    
    
        private void PrintEvent(EventLogEntry e)
        {
          String s = e.TimeGenerated.ToString() + "\r\n" + eventLog.LogDisplayName + "\r\nEventID: " + e.EventID.ToString() + "\r\nInstanceId: " + e.InstanceId.ToString() + "\r\nIndex: " + e.Index.ToString() + "\r\nEntery Type: " + e.EntryType + "\r\nCategory Number: " + e.CategoryNumber + " (" + e.Category + ")\r\n";
          s += e.Message +"\r\n==========================\r\n";
          foreach(String l in e.ReplacementStrings)
          {
            s += l + "\r\n";
          }
          AddEvent("_event" + DateTime.Now.Ticks.ToString() + " " + e.EventID + ".txt", s); //просто процедура, которая записывает текст в файл
        }
    

    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 21:18 MSDN Forums consolidation (От:Разработка Windows-приложений)
    11 августа 2010 г. 16:13

Ответы

  • Ох. Сам ответ нашёл :)

    В части кода, которую не привёл, т.к. посчитал, что там ничего интересного обращался к e.Entry.UserName. А оказалось, что этого было делать нельзя, т.к. оно не задано для Win7. Странно, но именно это и было причиной такой странной ошибки.

    • Помечено в качестве ответа eNin 11 августа 2010 г. 19:43
    11 августа 2010 г. 19:43