Por que o nome de usuário é “N / A” para a maioria das entradas do log de eventos? Como obtê-lo preenchido?

2

No meu código, se algo der errado, eu escrevo algo no log de eventos (usando a função ReportEvent). Para essas entradas, recebo um user-id na entrada do log de eventos (5º argumento das funções do ReportEvent).

Para muitas outras entradas (de outros aplicativos ou do próprio Windows), o campo do usuário é mostrado como "N / A".

O problema é que o Windows também adiciona entradas para meu aplicativo, principalmente:

  • se o aplicativo mostrar uma MesssageBox (com o sinalizador MB_TASKMODAL). O log de eventos mostra uma entrada com a fonte "Application Popup".
  • se meu aplicativo estiver ocupado e não estiver respondendo imediatamente. O log de eventos mostra uma entrada com o código-fonte "Suspensão do aplicativo".

Por que o Windows não mostra um nome de usuário ou um SID de usuário nas entradas do log de eventos? Por que é "N / A" na maioria das vezes? Existe alguma maneira que eu possa forçar o Windows a usar um nome de usuário ou SID nas entradas de log de eventos gerados pelo Windows?

Obrigado Patrick

    
por Patrick 06.06.2011 / 10:05

1 resposta

1

Até onde eu sei, não há como informar as janelas para registrar eventos com o nome de usuário. Parece que a Microsoft está se afastando do registro do nome de usuário com a maioria dos eventos.

Até o Windows 2003, os eventos no log de eventos de segurança geralmente tinham um nome de usuário associado a eles, mas esse não parece ser o caso do Windows 2008.

Eu não posso dizer por que isso é. As entradas do log de eventos geralmente são identificadas pela origem, id e categoria, e o nome de usuário geralmente é de pouco valor para fins de solução de problemas. Para a maioria dos eventos, o nome de usuário seria algo LocalSystem de qualquer maneira.

O Windows ainda registra o nome de usuário de alguns eventos, principalmente eventos do Agendador de Tarefas. Se você examinar o log de eventos do Microsoft-Windows-TaskScheduler / Operational, verá que todos os eventos são registrados com o nome de usuário do usuário sob o qual as tarefas foram executadas.

Imagino que você provavelmente gostaria de filtrar os eventos com base no nome de usuário, para que possa ver todos os eventos que têm alguma coisa a ver com seu aplicativo. Isso infelizmente não é possível, então você terá que olhar o conteúdo para determinar se ele corresponde ao nome do seu exe.

    
por 06.06.2011 / 17:06