Запись журнала событий на удаленном компьютере с использованием определенных учетных данных - PullRequest
0 голосов
/ 09 сентября 2018

Я искал способ записи журналов событий на удаленной машине с использованием определенных учетных данных. Это будет использоваться для проверки использования моего приложения в домене (приложение выполняет различные серверные задачи, но может быть запущено с любого ПК в домене). Как требование, программа должна иметь возможность создавать журналы событий на указанном сервере с указанными учетными данными, с любого ПК в домене или ПК с VPN-подключением к домену.

В настоящее время у меня есть следующий код для создания журнала событий:

EventLog evntlog = new EventLog("Application");
evntlog.MachineName = "192.168.0.5";
evntlog.Source = "Application";
evntlog.WriteEntry("Test Log.", EventLogEntryType.Information, 11573);

Указанное выше пространство имен EventLog не позволяет указывать учетные данные для подключения / удаленного компьютера. Между тем EventLogSession / EventLogReader делает, как показано ниже для получения журналов событий (это прекрасно работает для моего тестового сценария):

string query = "*[System/EventID=11573]";
EventLogSession session = new EventLogSession("192.168.0.5", domain, userName, userPass, SessionAuthentication.Default);
EventLogQuery evntquery = new EventLogQuery("Application", PathType.LogName, query);
evntquery.Session = session;
EventLogReader logReader = new EventLogReader(evntquery);

Я пытался найти способ записи записей, похожих на то, как они читаются выше, но не могу найти эквивалент (EventLog не поддерживает Session). Олицетворение также невозможно, так как программа будет указывать на другой домен полностью, без какого-либо доверия между ними.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 09 сентября 2018

Возможно, это не тот ответ, который вы ищете, но это абсолютно не тот способ, которым можно этого достичь. Журналы логически связаны с их контекстом, и даже если вы можете войти на удаленный компьютер, вы получите беспорядок.

Без доверия ваш единственный вариант - запустить какой-нибудь прокси, который будет принимать ваши события по сети и сохранять их для вас. Но зачем это делать? 'syslog' обеспечивает это целую вечность, и даже Windows имеет собственную инфраструктуру для управления централизацией журналов. Прочитайте это: https://www.loggly.com/ultimate-guide/centralizing-windows-logs/ Я видел сообщения об этом, в которых говорилось, что это работает и для независимых доменов, но вам может потребоваться дополнительная работа для его настройки.

...