Где хранятся логи windows server 2012 r2

Обновлено: 02.07.2024

В этом документе описываются принципы управления ведением журнала доступа пользователей (UAL).

Ведение журнала доступа пользователей (UAL) — это компонент, который помогает администраторам сервера подсчитать количество уникальных клиентских запросов ролей и служб на локальном сервере.

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

дополнительные сведения о преимуществах UAL см. в разделе Начало работы с ведением журнала доступа пользователей.

Содержание документа

Параметры конфигурации, описываемые в данном документе, включают в себя следующее:

Отключение и включение службы UAL

Сбор и удаление данных

Удаление данных, записанных службой UAL

Управление UAL в крупномасштабных средах

Восстановление из ошибочного состояния

Включение отслеживания использования лицензий рабочих папок

Отключение и включение службы UAL

UAL включается и запускается по умолчанию, когда компьютер под управлением Windows Server 2012 или более поздней версии устанавливается и запускается впервые. Для удовлетворения требований конфиденциальности или других рабочих нужд администратору может понадобиться отключить или запретить работу UAL. Можно отключить UAL с помощью консоли служб, из командной строки или с помощью командлетов PowerShell. Однако, чтобы гарантировать, что UAL не будет запускаться снова при следующем запуске компьютера, необходимо также отключить службу. В следующих процедурах описывается отключение и отключение UAL.

Для получения информации о службе UAL, включая сведения о том, работает или приостановлена служба, включена она или отключена, можно использовать командлет Get-Service UALSVC PowerShell.

Остановка и отключение службы UAL через консоль службы

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

В диспетчере серверов выберите Средства, затем щелкните Службы.

Прокрутите вниз и выберите пункт Служба ведения журнала доступа пользователей. Щелкните Остановка службы.

Щелкните правой кнопкой мыши - имя службы и выберите пункт свойства. На вкладке Общие поменяйте Тип запуска на Отключено и нажмите кнопку ОК.

Остановка и отключение UAL из командной строки

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

Нажмите клавишу с эмблемой Windows + R, а затем введите cmd, чтобы открыть окно командной строки.

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

Введите net stop ualsvc и нажмите клавишу ВВОД.

Введите netsh ualsvc set opmode mode=disable и нажмите клавишу ВВОД.

Следующие командлеты Windows PowerShell выполняют ту же функцию, что и предыдущая процедура. Вводите каждый командлет в одной строке, несмотря на то, что здесь они могут отображаться разбитыми на несколько строк из-за ограничений форматирования.

Также остановить и отключить UAL можно с помощью команд Windows PowerShell: Stop-service и Disable-Ual.

Если позднее вы хотите перезапустить и снова включить UAL, это можно сделать с помощью следующих процедур.

Запуск и включение службы UAL через консоль служб

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

В диспетчере серверов выберите Средства, затем щелкните Службы.

Прокрутите вниз и выберите пункт Служба ведения журнала доступа пользователей. Щелкните Запуск службы.

Правой кнопкой мыши щелкните имя службы и выберите Свойства. На вкладке Общие поменяйте Тип запуска на Автоматически и нажмите кнопку ОК.

Запуск и включение UAL из командной строки

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

Нажмите клавишу с эмблемой Windows + R, а затем введите cmd, чтобы открыть окно командной строки.

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

Введите net start ualsvc и нажмите клавишу ВВОД.

Введите netsh ualsvc set opmode mode=enable и нажмите клавишу ВВОД.

Следующие командлеты Windows PowerShell выполняют ту же функцию, что и предыдущая процедура. Вводите каждый командлет в одной строке, несмотря на то, что здесь они могут отображаться разбитыми на несколько строк из-за ограничений форматирования.

Также запустить и вновь включить UAL можно с помощью команд Windows PowerShell: Start-service и Enable-Ual.

Сбор данных UAL

В дополнение к командлетам PowerShell, описанным в предыдущем разделе, для получения данных UAL можно использовать 12 дополнительных командлетов:

Get-UalOverview: предоставляет сведения, относящиеся к UAL, а также журнал установленных продуктов и ролей.

Get-UalServerUser: предоставляет данные о доступе пользователя клиента на локальный или целевой сервер.

Get-UalServerDevice: предоставляет данные о доступе устройства клиента на локальный или целевой сервер.

Get-UalUserAccess: предоставляет данные о доступе пользователя клиента к каждой роли или продукту, установленным на локальном или целевом сервере.

Get-UalDeviceAccess: предоставляет данные о доступе устройства клиента к каждой роли или продукту, установленным на локальном или целевом сервере.

Get-UalDailyUserAccess: предоставляет данные о доступе пользователя клиента за каждый день года.

Get-UalDailyDeviceAccess: предоставляет данные о доступе устройства клиента за каждый день года.

Get-UalDailyAccess: предоставляет данные о доступе как пользователя, так и устройства клиента за каждый день года.

Get-UalHyperV: предоставляет данные о виртуальной машине, относящиеся к локальному или целевому серверу.

Get-UalDns: предоставляет специальные данные DNS-клиента локального или целевого DNS-сервера.

Get-UalSystemId: предоставляет специальные системные данные для уникальной идентификации локального или целевого сервера.

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

Основные возможности службы печати и документов и файловых служб устанавливаются по умолчанию. Поэтому администраторы могут всегда видеть информацию по этим службам, как при установленных полных ролях. Отдельные командлеты UAL входят в состав Hyper-V и службы DNS из-за уникальных данных, которые UAL собирает для этих ролей сервера.

Вариант сценария обычного использования командлетов UAL мог бы быть таким: администратор запрашивает у UAL уникальные клиентские доступы за определенный диапазон дат. Это можно сделать несколькими способами. Далее приводится рекомендуемый метод запроса уникальных доступов устройств за диапазон дат.

Он возвращает подробный список всех уникальных клиентских устройств по IP-адресам, которые совершали запросы к серверу в этот диапазон дат.

Значение "Активитикаунт" для каждого уникального клиента ограничено 65 535 в день. Вызов WMI из PowerShell также необходим только при запросе по дате. Все остальные параметры командлета UAL могут использоваться в рамках запросов PowerShell, как в следующем примере:

UAL позволяет хранить историю в течение двух лет. Чтобы разрешить получение данных UAL администратором при запуске службы, UAL создает копию активного файла базы данных Current. mdb в файле с именем GUID. mdb каждые 24 часа для использования поставщиком WMI.

В первый день года UAL создает новый GUID.mdb. Старый GUID. mdb сохраняется в качестве архива для использования поставщиком. По прошествии двух лет исходный GUID.mdb будет перезаписан.

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

Настройка 24-часового интервала по умолчанию так, чтобы данные стали видимы поставщику WMI

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

Нажмите клавишу с эмблемой Windows + R, а затем введите cmd, чтобы открыть окно командной строки.

Добавьте значение реестра: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WMI\AutoLogger\Sum\PollingInterval (REG_DWORD).

Неправильное изменение реестра может серьезно повредить систему. Перед внесением изменений в реестр следует сделать резервную копию всех ценных данных на компьютере.

В следующем примере показано, как добавить интервал в два минуты (не рекомендуется в долгосрочном состоянии выполнения): reg Add Хклм\систем\куррентконтролсет\контрол\вми \ Аутологжер\сум/v POLLINGINTERVAL/T REG _ DWORD/d 120000/f

Единица измерения времени — миллисекунды. Минимальное значение — 60 секунд, максимальное — семь дней, а значение по умолчанию — 24 часа.

Для остановки и перезапуска службы ведения журнала доступа пользователей используйте консоль служб.

Удаление данных, записанных службой UAL

Служба UAL не задумывалась как компонент для решения критически важных задач. Данная служба спроектирована так, чтобы как можно меньше воздействовать на работу локальной системы и при этом обеспечивать высокий уровень надежности. Это также позволяет администратору при необходимости вручную удалять базу данных и поддерживающие файлы UAL (каждый файл в каталоге \Windows\System32\LogFiles\SUM).

Удаление данных, записанных службой UAL

Остановите службу ведения журнала доступа пользователей.

перейдите в \ Windows \System32\Logfiles\SUM \.

Удалите все файлы из этой папки.

Управление UAL в крупномасштабных средах

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

Максимальное количество доступов, которое может быть записано UAL, составляет 65 535 в день. UAL не рекомендуется использовать на серверах, которые подключены непосредственно к Интернету, таких как веб-серверы, напрямую подключенные к Интернету, или в тех случаях, когда предельно высокая производительность является основной функцией сервера (например, в средах с рабочими нагрузками высокопроизводительных вычислений). В основном он предназначен для малых, средних и корпоративных интрасетей, в которых предполагается наличие большого объема данных, но не так высокое, как и многие из развертываний, которые регулярно обслуживают объем трафика в Интернете.

ual в памяти: поскольку в UAL используется расширяемый механизм служба хранилища (ESE), требования к памяти UAL увеличиваются со временем (или по количеству клиентских запросов). Но память будет освобождаться, поскольку это необходимо системе для минимизации воздействия на производительность.

UAL на диске. требования к жесткому диску для жестких дисков необходимы примерно так, как показано ниже:

0 уникальных клиентских записей: 22 МБ

50 000 уникальных клиентских записей: 80 МБ

500 000 уникальных клиентских записей: 384 МБ

1 000 000 уникальных клиентских записей: 729 МБ

Восстановление из ошибочного состояния

в этом разделе описывается использование расширенного механизма служба хранилища (ESE) на высоком уровне, а также действия администратора в случае повреждения или восстановления данных UAL.

Служба UAL использует ESE для оптимизации использования системных ресурсов и обеспечения их устойчивости к повреждению. Дополнительные сведения о преимуществах ESE см. в разделе Расширяемый обработчик хранилищ в MSDN.

При каждом запуске службы UAL обработчик ESE выполняет "мягкое" восстановление. Дополнительные сведения см. в разделе Файлы расширяемого обработчика хранилищ в MSDN.

Если выполнить "мягкое" восстановление будет проблематично, то ESE выполнит восстановление после сбоя. Дополнительные сведения см. в разделе Функция JetInit в MSDN.

Если UAL все же не может запуститься с существующим набором файлов ESE, то все файлы в каталоге \Windows\System32\LogFiles\SUM\ будут удалены. После удаления этих файлов будет вновь запущена служба ведения журнала доступа пользователей и созданы новые файлы. В этом случае служба UAL продолжит работу, как если бы она функционировала на вновь установленном компьютере.

Файлы в каталоге базы данных UAL никогда не должны перемещаться или изменяться. Если это случится, то будут инициированы действия по восстановлению, включая процедуру очистки, описанную в данном разделе. Если требуются резервные копии каталога \Windows\System32\LogFiles\SUM, то необходимо архивировать каждый файл из этого каталога, чтобы стала возможной операция восстановления.

Включение отслеживания использования лицензий рабочих папок

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

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

После включения ведения журнала 2 информационных события регистрируются в канал Windows Logs\Application каждый раз, когда клиент подключается к серверу. Для рабочих папок каждый пользователь может иметь одно или несколько клиентских устройств, которые подключаются к серверу проверяют наличие обновлений данных каждые 10 минут. Если с сервером взаимодействует 1000 пользователей, каждый из которых имеет 2 устройства, журналы приложений будут перезаписываться каждые 70 минут, что затрудняет устранение независимых проблем. чтобы избежать этого, можно временно отключить службу ведения журнала доступа пользователей или увеличить размер Windowsного канала логс\аппликатион сервера.

Как посмотреть логи windows

Всем привет, тема стать как посмотреть логи windows. Что такое логи думаю знают все, но если вдруг вы новичок, то логи это системные события происходящие в операционной системе как Windows так и Linux, которые помогают отследить, что, где и когда происходило и кто это сделал. Любой системный администратор обязан уметь читать логи windows.

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

Как открыть в просмотр событий

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

Откроется у вас окно просмотр событий windows в котором вам нужно развернуть пункт Журналы Windows. Пробежимся по каждому из журналов.

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

логи windows-01

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

логи windows-02

Пункт Установка, в него записывает Windows логи о том что и когда устанавливалось Например программы или обновления.

логи windows-03

логи windows-04

Так же есть логи windows для более специфических служб, например DHCP или DNS. Просмотр событий сечет все :).

логи windows-05

Фильтрация в просмотре событий

Предположим у вас в журнале Безопасность более миллиона событий, наверняка вы сразу зададите вопрос есть ли фильтрация, так как просматривать все из них это мазохизм. В просмотре событий это предусмотрели, логи windows можно удобно отсеять оставив только нужное. Справа в области Действия есть кнопка Фильтр текущего журнала.

Фильтрация в просмотре событий

Вас попросят указать уровень событий:

  • Критическое
  • Ошибка
  • Предупреждение
  • Сведения
  • Подробности

Фильтрация в просмотре событий-2

Так что как видите разобрать логи windows очень просто, ищем, находим, решаем. Так же может быть полезным быстрая очистка логов windows:

Посмотреть логи windows PowerShell

Было бы странно если бы PowerShell не умел этого делать, для отображения log файлов открываем PowerShell и вводим вот такую команду

В итоге вы получите список логов журнала Система

Тоже самое можно делать и для других журналов например Приложения

небольшой список абревиатур

Get-EventLog –LogName ‘System’ | Format-Table EntryType, TimeWritten, Source, EventID, Category, Message

вывести события

Если нужно вывести более подробно, то заменим Format-Table на Format-List

Get-EventLog –LogName ‘System’ | Format-List EntryType, TimeWritten, Source, EventID, Category, Message

Как видите формат уже более читабельный.

Format-List

Дополнительные продукты

Так же вы можете автоматизировать сбор событий, через такие инструменты как:

  • Комплекс мониторинга Zabbix
  • Через пересылку событий средствами Windows на сервер коллектор
  • Через комплекс аудита Netwrix
  • Если у вас есть SCOM, то он может агрегировать любые логи Windows платформ
  • Любые DLP системы

Удаленный просмотр логов

Не так давно в появившейся операционной системе Windows Server 2019, появился компонент удаленного администрирования Windows Admin Center. Он позволяет проводить дистанционное управление компьютером или сервером, подробнее он нем я уже рассказывал. Тут я хочу показать, что поставив его себе на рабочую станцию вы можете подключаться из браузера к другим компьютерам и легко просматривать их журналы событий, тем самым изучая логи Windows. В моем примере будет сервер SVT2019S01, находим его в списке доступных и подключаемся (Напомню мы так производили удаленную настройку сети в Windows).

Удаленное подключение через Windows Admin Center

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

Просмотр логов Windows через Windows Admin Center

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

Фильтрация логов в Windows Admin Center

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

Настройка фильтрации логов Windows через Windows Admin Center

Вот пример фильтрации по событию 19.

Удаленный просмотр логов Windows

Очень удобно экспортировать полностью журнал в формат evxt, который потом легко открыть через журнал событий. Так, что Windows Admin Center, это мощное средство по просмотру логов.

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

Указываем имя другого компьютера, в моем примере это будет SVT2019S01

Указание имени удаленного компьютера для просмотра логов

date

03.10.2019

directory

Windows Server 2012 R2, Windows Server 2016

comments

комментариев 69

В этой статье мы рассмотрим, особенности аудита / анализа логов RDP подключений в Windows. Как правило, описанные методы могут пригодиться при расследовании различных инцидентов на терминальных / RDS серверах Windows, когда от системного администратора требуется предоставить информацию: какие пользователи входили на RDS сервер, когда авторизовался и завершил сеанс конкретный пользователь, откуда / с какого устройства (имя или IP адрес) подключался RDP-пользователь. Я думаю, эта информация будет полезна как для администраторов корпоративных RDS ферм, так и владельцам RDP серверов в интернете (Windows VPS как оказалось довольно популярны).

Статья применима при исследовании RDP логов как в Windows Server 2008 R2, 2012/R2, 2016, так и в соответствующих десктопных версиях Windows (Windows 7, 8.1, 10).

Как и другие события, логи RDP подключения в Windows хранятся в журналах событий. Откройте консоль журнала событий (Event Viewer). Есть несколько различных журналов, в которых можно найти информацию, касающуюся RDP подключения.

В журналах Windows содержится большое количество информации, но быстро найти нужное событие бывает довольно сложно. Когда пользователь удаленно подключается к RDS серверу или удаленному столу (RDP) в журналах Windows генерируется много событий. Мы рассмотрим журналы и события на основных этапах RDP подключения, которые могут быть интересны администратору:

  1. Network Connection
  2. Authentication
  3. Logon
  4. Session Disconnect/Reconnect
  5. Logoff

Network Connection: – установление сетевого подключение к серверу от RDP клиента пользователя. Событие с EventID – 1149 (Remote Desktop Services: User authentication succeeded). Наличие этого события не свидетельствует об успешной аутентификации пользователя. Этот журнал находится в разделе Applications and Services Logs -> Microsoft -> Windows -> Terminal-Services-RemoteConnectionManager -> Operational. Включите фильтр по данному событию (ПКМ по журналу-> Filter Current Log -> EventId 1149).

1149 Terminal-Services-RemoteConnectionManager

В результате у вас получится список с историей всех сетевых RDP подключений к данному серверу. Как вы видите, в логах указывается имя пользователя, домен (используется NLA аутентификация, при отключенном NLA текст события выглядит иначе) и IP адрес компьютера, с которого осуществляется RDP подключение.

Remote Desktop Services: User authentication succeeded

Вы можете использовать события с ошибками аутентфикации для защиты от удаленного перебора паролей к RDP. Вы можете автоматически блокировать на файерволе такие IP адреса простым PowerShell скриптом (см. статью).

rdp событие аутентфикации An account was successfully logged on

При этом имя пользователя содержится в описании события в поле Account Name, имя компьютера в Workstation Name, а имя пользователя в Source Network Address.

Обратите внимание на значение поля TargetLogonID – это уникальный идентификатор сессии пользователя с помощью которого можно отслеживать дальнейшую активность данного пользователя. Однако при отключении от RDP сессии (disconnect) и повторного переподключения в сессию, пользователю будет выдан новый TargetLogonID (хотя RDP сессия осталась той же самой).

Вы можете получить список событий успешных авторизаций по RDP (событие 4624) с помощью такой команды PowerShell.

Get-EventLog security -after (Get-date -hour 0 -minute 0 -second 0) | ? | Out-GridView

получиь журнал RDP входов с помощью PowerShell

Событие с EventID – 21 (Remote Desktop Services: Shell start notification received) означает успешный запуск оболочки Explorer (появление окна рабочего стола в RDP сессии).

Session Disconnect/Reconnect – события отключения / переподключения к сессии имеют разные коды в зависимости от того, что вызвало отключение пользователя (отключение по неактивности, выбор пункта Disconnect в сессии, завершение RDP сессии другим пользователем или администратором и т.д.). Эти события находятся в разделе журналов Applications and Services Logs -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Operational. Рассмотрим RDP события, которые могут быть интересными:

  • EventID – 24 (Remote Desktop Services: Session has been disconnected) – пользователь отключился от RDP сессии.
  • EventID – 25 (Remote Desktop Services: Session reconnection succeeded) – пользователь переподключился к своей имеющейся RDP сессии на сервере.
  • EventID – 39 (Session <A> has been disconnected by session <B>) – пользователь сам отключился от своей RDP сессии, выбрав соответствующий пункт меню (а не просто закрыл окно RDP клиента). Если идентификаторы сессий разные, значит пользователя отключил другой пользователь (или администратор).
  • EventID – 40 (Session <A> has been disconnected, reason code <B>). Здесь нужно смотреть на код причины отключения в событии. Например:
    • reason code 0 (No additional information is available)– обычно говорит о том, что пользователь просто закрыл окно RDP клиента.
    • reason code 5 (The client’s connection was replaced by another connection) – пользователь переподключился к своей старой сессии.
    • reason code 11 (User activity has initiated the disconnect) – пользователь сам нажал на кнопку Disconnect в меню.

    Событие с EventID – 4778 в журнале Windows -> Security (A session was reconnected to a Window Station). Пользователь переподключился к RDP сессии (пользователю выдается новый LogonID).

    Событие с EventID 4799 в журнале Windows -> Security (A session was disconnected from a Window Station). Отключение от RDP сеанса.

    Logoff: – выход пользователя из системы. При этом в журнале Applications and Services Logs -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Operational фиксируется событие с EventID 23 (Remote Desktop Services: Session logoff succeeded).

    При этом в журнале Security нужно смотреть событие EventID 4634 (An account was logged off).

    Событие Event 9009 (The Desktop Window Manager has exited with code (<X>) в журнале System говорит о том, что пользователь инициировал завершение RDP сессии, и окно и графический shell пользователя был завершен.

    Ниже представлен небольшой PowerShell, который выгружает из журналов терминального RDS сервера историю всех RDP подключений за текущий день. В полученной таблице указано время подключения, IP адрес клиента и имя RDP пользователя (при необходимости вы можете включить в отчет другие типы входов).

    логи RDP подключений к RDS серверу с IP адресами и учетными записями

    Иногда бывает удобно с логами в таблице Excel, в этом случае вы можете выгрузить любой журнал Windows в текстовый файл и импортировать в Excel. Экспорт журнала можно выполнить из консоли Event Viewer (конечно, при условии что логи не очищены) или через командную строку:

    WEVTUtil query-events Security > c:\ps\security_log.txt

    get-winevent -logname "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" | Export-Csv c:\ps\rdp-log.txt -Encoding UTF8

    Список текущих RDP сессий на сервере можно вывести командой:

    Команда возвращает как идентификатор сессии (ID), имя пользователя (USERNAME)и состояние (Active/Disconnect). Эту команду удобна использовать, когда нужно определить ID RDP сессии пользователя при теневом подключении.

    Qwinsta

    Список запущенных процессов в конкретной RDP сессии (указывается ID сессии):

    qprocess

    На RDP-клиенте логи не такие информационные, основное чем часто пользуются информация об истории RDP подключений в реестре.


    Пора поговорить про удобную работу с логами, тем более что в 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.

    О возможностях 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. Платные рассматривать не буду, а вот бесплатную Log Parser Studio покажу.



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

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

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

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


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

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

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

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

    Логи - это системные события, который происходят в любой операционной системе. С помощью логов можно легко отследить кто, что и когда делал. Читать логи могут не только системные администраторы, поэтому в данной инструкции рассмотрим, как смотреть логи ОС windows.

    Ищете сервер с Windows? Выбирайте наши Windows VDS

    Просмотр событий для проверки логов.

    После нажатия комбинации “ Win+R и введите eventvwr.msc ” в любой системе Виндовс вы попадаете в просмотр событий. У вас откроется окно, где нужно развернуть Журналы Windows. В данном окне можно просмотреть все программы, которые открывались на ОС и, если была допущена ошибка, она также отобразится.

    windows_logs

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

    windows_logs2

    В пункте Установка можно посмотреть логи ОС Виндовс, например, программы и обновления системы.

    windows_logs3

    Система - наиболее важный журнал. С его помощью можно определить большинство ошибок ОС. К примеру, у вас появлялся синий экран. В данном журнале можно определить причину его появления.

    windows_logs4

    Логи windows - для более специфических служб. Это могут быть DHCP или DNS.

    windows_logs5

    Фильтрация событий.

    С помощью Фильтра текущего журнала (раздел Действия) можно отфильтровать информацию, которую вы хотите просмотреть.

    windows_logs6

    Обязательно нужно указать уровень Событий:

    • Критическое
    • Ошибка
    • Предупреждение
    • Сведения
    • Подробности

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

    windows_logs7

    Просмотр PowerShell логов.

    Открываем PowerShell и вставляем следующую команду Get-EventLog -Logname 'System'

    В результате вы получите логи Системы

    windows_logs8

    Для журнала Приложения используйте эту команду Get-EventLog -Logname 'Application

    windows_logs9

    Также обязательно ознакомьтесь с перечнем аббревиатур:

    Get-EventLog –LogName ‘System’ | Format-Table EntryType, TimeWritten, Source, EventID, Category, Message

    windows_logs10

    Если нужна подробная информация, замените Format-Table на Format-List на

    Get-EventLog –LogName ‘System’ | Format-List EntryType, TimeWritten, Source, EventID, Category, Message

    Формат информации станет более легким

    windows_logs11

    Get-EventLog –Logname ‘System’ –Newest 20

    vyivesti-sobyitiya

    Если нужен список, позднее даты 1 января 2018 года, команда

    Get-EventLog –LogName ‘System’ –After ‘1 января 2018’

    Надеемся, данная статья поможет вам быстро и просто читать логи ОС Windows.

    Желаем приятной работы!

    Как установить свой образ на ВДС сервер с Виндовс, читайте в предыдущей статье.

    Читайте также: