EvtArchiveExportedLog завершается с ошибкой ERROR_DIRECTORY - PullRequest
4 голосов
/ 21 июля 2010

Мне нужно экспортировать некоторые события из журнала событий Windows в XML на Windows Server 2008 R2.Чтобы достичь этого, я экспортирую эти события в файл, используя EvtExportLog, а затем пытаюсь использовать EvtArchiveExportedLog, чтобы получить локализованные описания событий.Вот пример:

EvtExportLog( 0, 0, query, logFileName, EvtExportLogChannelPath );
EvtArchiveExportedLog( 0, logFileName, 0, 0 );

Функция EvtExportLog завершается успешно и создает файл .evtx, но EvtArchiveExportedLog постоянно дает сбой с кодом ошибки ERROR_DIRECTORY.Я понятия не имею, в чем причина такого поведения.

1 Ответ

2 голосов
/ 25 февраля 2011

Кажется, я нашел причину.EvtArchiveExportedLog делает RPC-вызов svchost.exe, в котором размещается служба Eventlog.Эта служба пытается создать файл в папке «% windir% \ ServiceProfiles \ LocalService \ AppData \ Local \ Temp», происходит сбой с кодом ERROR_ACCESS_DENIED и возвращается ERROR_DIRECTORY клиенту RPC.Поскольку сервер RPC олицетворяет клиента, решение состоит в том, чтобы предоставить привилегии доступа вызывающему потоку.

...