Запись в журнал событий без администратора
Я администратор на моей локальной машине. Однако приложение, которое я создаю (надстройка Outlook VSTO), будет развернуто администратором развертывания пользователям, у которых не будет администратора.
Приложение устанавливается правильно.
Моя проблема в том, что у меня есть код, который проверяет, если EventLog.SourceExists("my VSTO addin")
, Если не будет EventLog.CreateEventSource("my VSTO addin")
,
Мои вопросы:
- Мне действительно нужно создать источник событий? Будет ли он по-прежнему регистрироваться без существующего источника?
- Как мне создать источник события (если требуется #1)?
2a Возможно, мне нужно создать небольшое приложение, которое создает источник событий, и это должно быть установлено администратором?
2b Может быть, я могу вставить его в код где-нибудь, что будет вызываться при его установке? (Я использую установить щит)
2c Возможно, это может сделать администратор как часть групповой политики?
2d я могу создать раздел реестра в соответствии с https://docs.microsoft.com/en-us/windows/desktop/EventLog/event-sources
1 ответ
Чтобы ответить на мои вопросы: мне нужно создать источник. Чтобы решить эту проблему, я создал другое консольное приложение, которое просто создает нужные мне источники событий. В installshield я добавил этот новый exe как пользовательское действие. Установка выполняется в режиме администратора, поэтому источники создаются. Это исправляет приложение, потому что не администраторы использовали приложение, и оно пыталось создать источники журнала событий, если они не существуют. Я удалил этот чек.