Удаленный просмотр журнала windows

Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.

3 способа проверить логи событий на удаленном компьютере

При поддержке блога про гаджеты и usb мышки 2USB.ru и интернет-магазина дизайнерских флешек shop.2usb.ru

Существует три способа проверить логи событий на удаленном компьютере:

Использование оснастки Eventvwr.msc

Первый способ заключается в использовании оснастки Просмотр событий, запустив которую можно набрав Eventvwr.msc в командной строке, а затем выполнив подключение к удаленному компьютеру.

Использование EventQuery.VBS

Операционные системы Windows (Windows XP и более поздние) включают встроенное средство командной строки позволяющее проверить логи событий на удаленных системах. За более подробной информацией по сценарию EventyQuery.VBS перейдите по адресу /technet.microsoft.com/en-us/library/bb490900.aspx

Использование PsLogList.exe

Компания Sysinternals (теперь Microsoft Sysinternals) разработало утилиту PsLogList. С помощью данной утилиты можно проверять логи событий или сохранять их в текстовый файл. За более подробной информацией по утилите и возможным в ней ключам перейдите по ссылке technet.microsoft.com/en-us/sysinternals/bb897544.aspx

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

Полезная информация

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

Блог системного администратора Windows/Linux/FreeBSD

Просмотр логов Windows на удаленном компьютере с помощью Powershell

Для просмотра логов Windows можно использовать команды Get-WinEvent и Get-EventLog

Get-EventLog получает список журналов или событий в заданном журнале на локальном или удалённом компьютере. Указывая нужные параметры для Get-EventLog, можно с лёгкостью искать искомые события по значениям их свойств. Get-EventLog возвращает события, соответствующие всем указанным значениям свойств. Командлет Get-EventLog работает только со стандартными классическими журналами событий Windows. Если нужно искать по остальным событиям из журналов Windows, используйте командлет Get-WinEvent.

Представим, что вам нужна основная информация о журналах событий на вашем компьютере. В этом случае убедитесь, что вы включили параметр list при вызове Get-EventLog:

Если вам нужна только информация о конкретном журнале событий, используйте командлет Where-Object, чтобы ограничить извлечение данных конкретным журналом событий:

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

После выполнения команды выше на экран будет выведено слишком много данных. Используйте параметр -Newest и верните только нужное количество последних событий, записанных в журнале. Например, эта команда извлекает последние 10 событий, записанные в журнал событий системы:

Вот данные, которые вы получите:

Чтобы получить более подробную информацию, просто добавьте командлет Format-List:

Полученная информация будет уже такой:

Вы также можете передавать данные через командлет Where-Object для возврата подмножества событий. Например, эта команда извлекает только те события в журнале событий Windows PowerShell, у которых значение EventID равно 403:

Вот небольшая команда, которая извлекает все события в журнале событий Windows PowerShell, а затем использует командлет Group-Object для группировки этих событий с помощью EventID. Другими словами, команда подсчитывает общее количество событий для каждого идентификатора (например, произошло два события с EventID 300, произошло шесть событий с событием EventID 400 и т. Д.). Затем эти данные передаются через командлет Sort-Object для предоставления результатов, отсортированных по EventID. Вот команда:

Читайте также:  При смене видеокарты нужно ли переустанавливать windows

Примеры использования Get-Eventlog:

Поиск событий по ID после 3 июля:

Поиск в логах нескольких серверов:

Возвращает все события журнала Windows PowerShell, в сообщениях которых содержится слово «failed»:

Поиск событий, статус которых «Ошибка»:

Командлет Get-WinEvent берёт данные из журналов событий, а именно — стандартные журналы событий, события приложений и системы. Если вызвать команду Get-WinEvent без параметров, то будут показаны все события из журналов событий компьютера. Для прерывания выполнения команды нажмите сочетание клавиш CTRL+C. Стоит отметить то, что Get-WinEvent работает только в Windows Vista, Windows Server 2008 R2 и старше. Также потребуется установленная платформа Microsoft .NET Framework 3.5 или новее.

Примеры использования Get-Winevent:

Поиск в логе System по ID 6005:

Поиск событий за последние 40 дней:

Поиск событий за последние 5 дней для Outlook:

Поиск в логах нескольких серверов:

Просмотр событий на удаленном компьютере

Просмотр событий — это компонент операционной системы Windows, который позволяет просматривать список событий (логи) на компьютере. По умолчанию, при открытии «Просмотра событий», отображаются события локального компьютера, однако, есть возможность просмотреть события любого другого компьютера по сети.

Подключение к другому компьютеру

После запуска «Просмотра событий«, нужно в левой части окна найти раздел «Просмотр событий (локальный)«.

После этого, по нему нужно нажать правой кнопкой мыши, и выбрать пункт «Подключится к другому компьютеру. «.

Откроется окошко, в котором нужно ввести имя удаленного компьютера. Если для подключения к другому компьютеру нужно использовать имя пользователя и пароль, отличающиеся от тех, из под которых выполняются данные действия, нужно поставить галочку «Подключиться как другой пользователь«. После ввода всех необходимых данных, нужно нажать кнопку «ОК».

После успешного подключения, наименование раздела сменит имя на «Просмотр событий (ИМЯ УДАЛЕННОГО КОМПЬЮТЕРА)«.

Удаленный просмотр журнала windows

Вопрос

Добрый день, уважаемые специалисты!

Итак, есть два ПК (PC1 и PC2) под управлением Windows 7 Entreprise SP1, видимые друг другу по LAN. Имеется административный доступ к каждому из них.

Наблюдаю следующую проблему: не получается подключить доступ к «Просмотру событий» с одного ПК на другом.

Порядок: запускаю MMC (под администратором или нет — не важно). Добавляю оснастку «Просмотр событий» -> «Другой компьютер» -> Прописываю имя, выставляя галочку «Подключиться как другой пользователь» -> Выбрать пользователя -> Прописываю имя пользователя в формате PC2\Administrator и пароль -> OK -> OK.

Оснастка добавляется, закрываю «добавление и удаление оснасток». Выбираю в столбце слева «Просмотр событий (PC2)», «Журналы Windows» и, например, «Система», после чего получаю сообщение в поле справа (где должны отображаться записи): «Средство просмотра событий не может открыть журнал событий или пользовательское представление. Убедитесь, что служба событий запущена, либо слишком длинный запрос. Отказано в доступе (5)»

Судя по всему, где-то в недрах системы данная возможность блокируется, но я ее не нашел. В чем может быть причина?

Вертим логи как хотим ― анализ журналов в системах Windows

Пора поговорить про удобную работу с логами, тем более что в Windows есть масса неочевидных инструментов для этого. Например, Log Parser, который порой просто незаменим.

В статье не будет про серьезные вещи вроде Splunk и ELK (Elasticsearch + Logstash + Kibana). Сфокусируемся на простом и бесплатном.

Читайте также:  Как скопировать содержимое файла линукс

Журналы и командная строка

До появления PowerShell можно было использовать такие утилиты cmd как find и findstr. Они вполне подходят для простой автоматизации. Например, когда мне понадобилось отлавливать ошибки в обмене 1С 7.7 я использовал в скриптах обмена простую команду:

Она позволяла получить в файле fail.txt все ошибки обмена. Но если было нужно что-то большее, вроде получения информации о предшествующей ошибке, то приходилось создавать монструозные скрипты с циклами for или использовать сторонние утилиты. По счастью, с появлением PowerShell эти проблемы ушли в прошлое.

Основным инструментом для работы с текстовыми журналами является командлет Get-Content, предназначенный для отображения содержимого текстового файла. Например, для вывода журнала сервиса WSUS в консоль можно использовать команду:

Для вывода последних строк журнала существует параметр Tail, который в паре с параметром Wait позволит смотреть за журналом в режиме онлайн. Посмотрим, как идет обновление системы командой:


Смотрим за ходом обновления Windows.

Если же нам нужно отловить в журналах определенные события, то поможет командлет Select-String, который позволяет отобразить только строки, подходящие под маску поиска. Посмотрим на последние блокировки Windows Firewall:


Смотрим, кто пытается пролезть на наш дедик.

При необходимости посмотреть в журнале строки перед и после нужной, можно использовать параметр Context. Например, для вывода трех строк после и трех строк перед ошибкой можно использовать команду:

Оба полезных командлета можно объединить. Например, для вывода строк с 45 по 75 из netlogon.log поможет команда:

Журналы системы ведутся в формате .evtx, и для работы с ними существуют отдельные командлеты. Для работы с классическими журналами («Приложение», «Система», и т.д.) используется Get-Eventlog. Этот командлет удобен, но не позволяет работать с остальными журналами приложений и служб. Для работы с любыми журналами, включая классические, существует более универсальный вариант ― Get-WinEvent. Остановимся на нем подробнее.

Для получения списка доступных системных журналов можно выполнить следующую команду:


Вывод доступных журналов и информации о них.

Для просмотра какого-то конкретного журнала нужно лишь добавить его имя. Для примера получим последние 20 записей из журнала System командой:


Последние записи в журнале System.

Для получения определенных событий удобнее всего использовать хэш-таблицы. Подробнее о работе с хэш-таблицами в PowerShell можно прочитать в материале Technet about_Hash_Tables.

Для примера получим все события из журнала System с кодом события 1 и 6013.

В случае если надо получить события определенного типа ― предупреждения или ошибки, ― нужно использовать фильтр по важности (Level). Возможны следующие значения:

  • 0 ― всегда записывать;
  • 1 ― критический;
  • 2 ― ошибка;
  • 3 ― предупреждение;
  • 4 ― информация;
  • 5 ― подробный (Verbose).

Собрать хэш-таблицу с несколькими значениями важности одной командой так просто не получится. Если мы хотим получить ошибки и предупреждения из системного журнала, можно воспользоваться дополнительной фильтрацией при помощи Where-Object:


Ошибки и предупреждения журнала System.

Аналогичным образом можно собирать таблицу, фильтруя непосредственно по тексту события и по времени.

Подробнее почитать про работу обоих командлетов для работы с системными журналами можно в документации PowerShell:

PowerShell ― механизм удобный и гибкий, но требует знания синтаксиса и для сложных условий и обработки большого количества файлов потребует написания полноценных скриптов. Но есть вариант обойтись всего-лишь SQL-запросами при помощи замечательного Log Parser.

Работаем с журналами посредством запросов SQL

Утилита Log Parser появилась на свет в начале «нулевых» и с тех пор успела обзавестись официальной графической оболочкой. Тем не менее актуальности своей она не потеряла и до сих пор остается для меня одним из самых любимых инструментов для анализа логов. Загрузить утилиту можно в Центре Загрузок Microsoft, графический интерфейс к ней ― в галерее Technet. О графическом интерфейсе чуть позже, начнем с самой утилиты.

Читайте также:  Просмотр ключа продукта windows

О возможностях Log Parser уже рассказывалось в материале «LogParser — привычный взгляд на непривычные вещи», поэтому я начну с конкретных примеров.

Для начала разберемся с текстовыми файлами ― например, получим список подключений по RDP, заблокированных нашим фаерволом. Для получения такой информации вполне подойдет следующий SQL-запрос:

Посмотрим на результат:


Смотрим журнал Windows Firewall.

Разумеется, с полученной таблицей можно делать все что угодно ― сортировать, группировать. Насколько хватит фантазии и знания SQL.

Log Parser также прекрасно работает с множеством других источников. Например, посмотрим откуда пользователи подключались к нашему серверу по RDP.

Работать будем с журналом TerminalServices-LocalSessionManager\Operational.

Не со всеми журналами Log Parser работает просто так ― к некоторым он не может получить доступ. В нашем случае просто скопируем журнал из %SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx в %temp%\test.evtx.

Данные будем получать таким запросом:


Смотрим, кто и когда подключался к нашему серверу терминалов.

Особенно удобно использовать Log Parser для работы с большим количеством файлов журналов ― например, в IIS или Exchange. Благодаря возможностям SQL можно получать самую разную аналитическую информацию, вплоть до статистики версий IOS и Android, которые подключаются к вашему серверу.

В качестве примера посмотрим статистику количества писем по дням таким запросом:

Если в системе установлены Office Web Components, загрузить которые можно в Центре загрузки Microsoft, то на выходе можно получить красивую диаграмму.


Выполняем запрос и открываем получившуюся картинку…


Любуемся результатом.

Следует отметить, что после установки Log Parser в системе регистрируется COM-компонент MSUtil.LogQuery. Он позволяет делать запросы к движку утилиты не только через вызов LogParser.exe, но и при помощи любого другого привычного языка. В качестве примера приведу простой скрипт PowerShell, который выведет 20 наиболее объемных файлов на диске С.

Ознакомиться с документацией о работе компонента можно в материале Log Parser COM API Overview на портале SystemManager.ru.

Благодаря этой возможности для облегчения работы существует несколько утилит, представляющих из себя графическую оболочку для Log Parser. Платные рассматривать не буду, а вот бесплатную Log Parser Studio покажу.


Интерфейс Log Parser Studio.

Основной особенностью здесь является библиотека, которая позволяет держать все запросы в одном месте, без россыпи по папкам. Также сходу представлено множество готовых примеров, которые помогут разобраться с запросами.

Вторая особенность ― возможность экспорта запроса в скрипт PowerShell.

В качестве примера посмотрим, как будет работать выборка ящиков, отправляющих больше всего писем:


Выборка наиболее активных ящиков.

При этом можно выбрать куда больше типов журналов. Например, в «чистом» Log Parser существуют ограничения по типам входных данных, и отдельного типа для Exchange нет ― нужно самостоятельно вводить описания полей и пропуск заголовков. В Log Parser Studio нужные форматы уже готовы к использованию.

Помимо Log Parser, с логами можно работать и при помощи возможностей MS Excel, которые упоминались в материале «Excel вместо PowerShell». Но максимального удобства можно достичь, подготавливая первичный материал при помощи Log Parser с последующей обработкой его через Power Query в Excel.

Приходилось ли вам использовать какие-либо инструменты для перелопачивания логов? Поделитесь в комментариях.

Оцените статью