Как подключиться к определенному вложенному журналу событий в программе на C#? ⇐ C#
-
Гость
Как подключиться к определенному вложенному журналу событий в программе на C#?
Я пишу программу на C#, которая просматривает журналы событий Windows на предмет попыток входа в систему с удаленного рабочего стола, а затем сообщает о входах в систему с указанием времени в формате CSV, IP-адресов, имени пользователя и домена. Я могу заставить его успешно читать неудачные попытки входа в систему через журнал «Безопасность» при событии 4625, но я хотел бы, чтобы он мог читать успешные попытки входа в систему, которые регистрируются как событие 1149 в разделе «Журналы приложений и служб -> Microsoft — > Windows -> TerminalServices-RemoteConnectionManager -> Operational'. Я попытался зайти в средство просмотра событий, чтобы получить имя «Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational», но оно говорит, что не может найти журнал. Вот функция, которую я использую для проверки:
с использованием System.Diagnostics.Eventing.Reader; (...) частная пустота CheckEventLog() { если (exportPath == ноль) { // Программа экспортирует результат в файл CSV. Если не указан путь экспорта, отображается ошибка. DialogResult errorBox = MessageBox.Show("Введите путь экспорта.", "Ошибка экспорта", MessageBoxButtons.OK, MessageBoxIcon.Error); возвращаться; } если (compInput.Text == "") { // Для подключения к другим компьютерам логи; закомментировал, потому что не работает // Обычно при этом выбирается имя исполняющего компьютера, если ничего не введено // comp = Convert.ToString(System.Environment.MachineName); } еще { comp = Convert.ToString(System.Environment.MachineName); // То же, что и выше, но перенесено сюда, чтобы всегда работать, пока функция net отключена // комп = compInput.ToString(); // Это берет введенное имя компьютера из поля (если мы использовали эту функцию) имя пользователя = usrImp.ToString(); пароль = pasImp.ToString(); SecureString securePassword = новый SecureString(); // ^^ эти 3 строки также предназначены для использования net foreach (символ c в пароле) { SecurePassword.AppendChar(c); } // Обычно здесь должен быть }, но поскольку сеть отключена И в compInput есть текст предупреждения, нам нужно, чтобы вся функция работала в операторе else // Время подключения к журналу событий... Сеанс EventLogSession = новый EventLogSession( comp, // На
Я пишу программу на C#, которая просматривает журналы событий Windows на предмет попыток входа в систему с удаленного рабочего стола, а затем сообщает о входах в систему с указанием времени в формате CSV, IP-адресов, имени пользователя и домена. Я могу заставить его успешно читать неудачные попытки входа в систему через журнал «Безопасность» при событии 4625, но я хотел бы, чтобы он мог читать успешные попытки входа в систему, которые регистрируются как событие 1149 в разделе «Журналы приложений и служб -> Microsoft — > Windows -> TerminalServices-RemoteConnectionManager -> Operational'. Я попытался зайти в средство просмотра событий, чтобы получить имя «Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational», но оно говорит, что не может найти журнал. Вот функция, которую я использую для проверки:
с использованием System.Diagnostics.Eventing.Reader; (...) частная пустота CheckEventLog() { если (exportPath == ноль) { // Программа экспортирует результат в файл CSV. Если не указан путь экспорта, отображается ошибка. DialogResult errorBox = MessageBox.Show("Введите путь экспорта.", "Ошибка экспорта", MessageBoxButtons.OK, MessageBoxIcon.Error); возвращаться; } если (compInput.Text == "") { // Для подключения к другим компьютерам логи; закомментировал, потому что не работает // Обычно при этом выбирается имя исполняющего компьютера, если ничего не введено // comp = Convert.ToString(System.Environment.MachineName); } еще { comp = Convert.ToString(System.Environment.MachineName); // То же, что и выше, но перенесено сюда, чтобы всегда работать, пока функция net отключена // комп = compInput.ToString(); // Это берет введенное имя компьютера из поля (если мы использовали эту функцию) имя пользователя = usrImp.ToString(); пароль = pasImp.ToString(); SecureString securePassword = новый SecureString(); // ^^ эти 3 строки также предназначены для использования net foreach (символ c в пароле) { SecurePassword.AppendChar(c); } // Обычно здесь должен быть }, но поскольку сеть отключена И в compInput есть текст предупреждения, нам нужно, чтобы вся функция работала в операторе else // Время подключения к журналу событий... Сеанс EventLogSession = новый EventLogSession( comp, // На
Мобильная версия