Windows отследить события оборудования

Мониторинг и оповещение о событиях в журналах Windows: триггеры событий

В Windows Server 2008 (Vista) появился новый функционал, позволяющий привязать задание планировщика к любому событию в журналах системы. Благодаря этой возможности администратор может на любое событие Windows назначить выполнение определенного скрипта или отправку оповещения по электронной почты. Разберемся с этой возможностью подробнее.

Возможность запуска задач при наступлении определенных событий Windows основана на тесной интеграции Task Scheduler и Event Viewer. Назначить задание планировщика на любое событие Windows можно прямо из консоли журнала просмотр события (Event Viewer). В качестве реакции на произошедшее событие планировщик может запустить скрипт или отправить почтовое уведомление администратору (или любому другому пользователю).

Допустим, наша задача – настроить оповестить администратора безопасности о блокировке учетной записи пользователя в Active Directory.

Событие блокировки учетной записи в AD отмечается на контроллере домена в журнале Security (Безопасность). Event ID события блокировки – 4740. Открываем консоль журнала событий Windows (Event Viewer — eventvwr.msc) и ищем интересующее нас событие. Щелкаем по нему ПКМ и выбираем пункт Attach Task To This Event (Прикрепить задачу к этому событию).

Запускается мастер создания нового задания планировщика. Мастер предложит указать имя задания. Оно генерируется автоматически — Security_Microsoft-Windows-Security-Auditing_4740 и нас устраивает.

На следующем шаге указаны вид журнала событий, источник и Event ID события (все поля заполняются автоматически и не доступны для редактирования на этом шаге).

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

  • Start a program – запуск программы (скрипта)
  • Send an e-mail – отправка почтового уведомления
  • Display a message – отображение сообщения в консоли

Нас интересует оповещение по Email. Указываем отправителя, получателя, адрес SMTP сервера, тему и текст письма.

На последнем шаге мастера можно посмотреть получившиеся настройки триггера. В результате в планировщике задач появится новое задание, привязанное к нашему событию. Откроем консоль Task Scheduler (в Administrative Tools). Созданное задание можно найти в разделе Task Scheduler Library -> Event Viewer Tasks.

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

Триггер является активным. Теперь при блокировке любой учетной записи AD – на указанный email будет отправляться письмо с уведомлением.

Примечание. Аналогичный функционал в Windows Server 2003 и более ранних версиях Windows реализовывался с помощью консольной утилиты — eventtriggers.exe. Данная утилита также позволяла отслеживать события в журналах системы и «вешать» на определенные события триггеры. Для нашего пример, когда к событию 4740 нужно привязать выполнение скрипта vbs или powershell, который отправляет письмо на ящик администратора, команда может быть такой:

eventtriggers /create /TR “Lock Account” /TK “C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe c:\script\SendEmail.ps1″ /L Security /EID 4740

Такое уведомление не очень информативно, и для просмотра подробной информации о событии приходится открывать журнал Event Viewer. Попробуем прикрепить к письму данные из журнала событий. В этом нам поможет утилита wevtutil, позволяющая выгрузить из журналов Windows информацию о любом событии. Так, чтобы получить данные о последнем событии с кодом 4740 из журнала Security, нужно выполнить:

wevtutil qe Security /q:»*[System[(EventID=4740)]]» /f:text /rd:true /c:1

Создадим скрипт (query.cmd) из двух строчек: первая удаляет старый файл с логом, вторая – выгружает из журнала последнее событие и сохраняет его в файл лога:

del c:\script\query.txt
wevtutil qe Security /q:»*[System[(EventID=4740)]]» /f:text /rd:true /c:1 > c:\script\query.txt

Осталось еще раз открыть настройки созданного ранее триггера в журнале планировщика задач. На вкладке Actions добавим новое действие – запуск скрипта query.cmd. Затем нужно изменить порядок выполнения действий, перенесем его вверх списка с помощью стрелок справа (скрипт должен выполняться первым).

Далее отредактируем второе действие – отправку электронного письма, выбрав в качестве вложения к письму файл c:\script\query.txt .

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

Привязка заданий планировщика к событиям в журналах систем работает во всех версиях Windows, начиная с Windows Server 2008 / Vista. Этот функционал позволяет быстро оповестить администратора о возникновении определенных проблем с серверов и отреагировать на них.

Отслеживание событий в системе трассировки событий Windows Tracking Events into Event Tracing in Windows

В этом примере показано, как включить отслеживание Windows Workflow Foundation (WF) в службе рабочего процесса и выдать события отслеживания в трассировке событий для Windows (ETW). This sample demonstrates how to enable Windows Workflow Foundation (WF) tracking on a workflow service and emit the tracking events in Event Tracing for Windows (ETW). Для создания записей отслеживания рабочих процессов в ETW в этом образце используется участник отслеживания трассировки событий Windows (EtwTrackingParticipant). To emit workflow tracking records into ETW, the sample uses the ETW tracking participant (EtwTrackingParticipant).

Читайте также:  E1 571g 53234g50mnks windows

В образце рабочий процесс получает запрос, присваивает обратное значение входных данных входной переменной и возвращает обратное значение клиенту. The workflow in the sample receives a request, assigns the reciprocal of the input data to the input variable and returns the reciprocal back to the client. Если входные данные равны 0, то возникнет необрабатываемое исключение деления на ноль, которое приводит к прерыванию рабочего процесса. When the input data is 0, a divide by zero exception occurs that is unhandled that causes the workflow to abort. При включенном отслеживании в трассировке событий Windows создается запись отслеживания ошибки, которая в дальнейшем может быть использована для исправления ошибки. With tracking enabled, the error track record is emitted to ETW, which can help troubleshoot the error later. Для подписки на записи отслеживания в участнике отслеживания трассировка событий Windows задается профиль отслеживания. The ETW tracking participant is configured with a tracking profile to subscribe to tracking records. Профиль отслеживания определяется в файле Web.config и предоставляется участнику отслеживания трассировки событий Windows как параметр конфигурации. The tracking profile is defined in the Web.config file and provided as a configuration parameter to the ETW tracking participant. Участник отслеживания трассировки событий Windows настраивается в файле Web.config службы рабочего процесса и применяется к службе как поведение службы. The ETW tracking participant is configured in the Web.config file of the workflow service and is applied to the service as a service behavior. В этом образце события отслеживания просматриваются в журнале событий с помощью средства просмотра событий. In this sample, you view the tracking events in the event log using Event Viewer.

Подробные сведения об отслеживании рабочего процесса Workflow Tracking Details

Windows Workflow Foundation предоставляет инфраструктуру отслеживания для отслеживания выполнения экземпляра рабочего процесса. Windows Workflow Foundation provides a tracking infrastructure to track the execution of a workflow instance. Среды выполнения отслеживания создает экземпляр рабочего процесса для создания событий, связанных с жизненным циклом рабочего процесса, событиями из действий рабочего процесса и пользовательскими событиями. The tracking runtime creates a workflow instance to emit events related to the workflow lifecycle, events from workflow activities and custom events. В следующих сведениях о таблице подробно описаны основные компоненты инфраструктуры отслеживания. The following table details the primary components of the tracking infrastructure.

Компонент Component Описание Description
Среда выполнения отслеживания Tracking runtime Предоставляет инфраструктуру для передачи записей отслеживания. Provides the infrastructure to emit tracking records.
Участники отслеживания Tracking participants Открывает записи отслеживания. Accesses the tracking records. .NET Framework 4.6.1 .NET Framework 4.6.1 поставляется с участником отслеживания, который записывает записи отслеживания в виде событий средства трассировки событий для Windows (ETW). ships with a tracking participant that writes tracking records as Event Tracing for Windows (ETW) events.
Профиль отслеживания Tracking profile Механизм фильтрации, который позволяет участнику отслеживания подписаться на подмножество записей отслеживания, передаваемых из экземпляра рабочего процесса. A filtering mechanism that allows a tracking participant to subscribe for a subset of the tracking records emitted from a workflow instance.

Следующая таблица содержит подробные сведения о записях отслеживания, создаваемых средой выполнения рабочего процесса. The following table details the tracking records that the workflow runtime emits.

Запись отслеживания Tracking record Описание Description
Записи отслеживания экземпляра рабочего процесса. Workflow instance tracking records. Описывает жизненный цикл экземпляра рабочего процесса. Describes the lifecycle of the workflow instance. Например, запись экземпляра создается при запуске и завершении рабочего процесса. For example, an instance record is emitted when the workflow starts or completes.
Записи отслеживания состояний действия. Activity state tracking records. Подробные сведения о выполнении действия. Details activity execution. Эти записи сообщают о состоянии действия рабочего процесса, например о планировании выполнения действия, о завершении действия или о возникновении ошибки. These records indicate the state of a workflow activity such as when an activity is scheduled or when the activity completes or when a fault is thrown.
Запись возобновления закладки. Bookmark resumption record. Создается при возобновлении закладки в экземпляре рабочего процесса. Emitted whenever a bookmark within a workflow instance is resumed.
Пользовательские записи отслеживания. Custom tracking records. Автор рабочего процесса может создавать настраиваемые записи отслеживания и выдавать их в рамках пользовательской операции. A workflow author can create custom tracking records and emit them within the custom activity.
ActivityScheduledRecord Эта запись создается, когда действие планирует другое действие. This record is emitted when an activity schedules another activity.
FaultPropagationRecord Эта запись создается, когда от действия передается ошибка. This record is emitted when a fault is propagated from an activity.
CancelRequestedRecord Эта запись создается, когда действие отменяется другим действием. This record is emitted when an activity is canceled by another activity.

Участник отслеживания подписывается на часть создаваемых записей отслеживания с помощью профилей отслеживания. The tracking participant subscribes for a subset of the emitted tracking records using tracking profiles. Профиль отслеживания содержит запросы отслеживания, которые позволяют подписываться на определенный тип записей отслеживания. A tracking profile contains tracking queries that allow subscribing for a particular tracking record type. Профили отслеживания можно указывать в коде или в конфигурации. Tracking profiles can be specified in code or in configuration.

Использование этого образца To use this sample

С помощью Visual Studio 2010 откройте файл решения ЕтвтраккингпартиЦипантсампле. sln. Using Visual Studio 2010, open the EtwTrackingParticipantSample.sln solution file.

Для построения решения нажмите CTRL+SHIFT+B. To build the solution, press CTRL+SHIFT+B.

Чтобы запустить решение, нажмите клавишу F5. To run the solution, press F5.

По умолчанию служба прослушивает порт 53797 ( http://localhost:53797/SampleWorkflowService.xamlx ). By default, the service is listening on port 53797 ( http://localhost:53797/SampleWorkflowService.xamlx ).

В проводнике откройте тестовый клиент WCF. Using File Explorer, open the WCF test client.

Тестовый клиент WCF (WcfTestClient.exe) находится в папке \Common7\IDE The WCF test client (WcfTestClient.exe) is located in the \Common7\IDE\ folder.

Папка установки Visual Studio 2010 по умолчанию — C:\Program Files\Microsoft Visual Studio 10,0. The default Visual Studio 2010 installation folder is C:\Program Files\Microsoft Visual Studio 10.0.

В тестовом клиенте WCF выберите Добавить службу в меню файл . In WCF test client, select Add Service from the File menu.

Добавьте адрес конечной точки в поле ввода. Add the endpoint address in the input box. Значение по умолчанию — http://localhost:53797/SampleWorkflowService.xamlx . The default is http://localhost:53797/SampleWorkflowService.xamlx .

Откройте приложение просмотра событий. Open the Event Viewer application.

Перед вызовом службы запустите Просмотр событий из меню Пуск , выберите пункт выполнить и введите в eventvwr.exe . Before invoking the service, start Event Viewer from the Start menu, select Run and type in eventvwr.exe . Убедитесь, что журнал событий прослушивает события отслеживания, создаваемые службой рабочего процесса. Ensure that the event log is listening for tracking events emitted from the workflow service.

В древовидном представлении Просмотр событий перейдите к Просмотр событий, журналы приложений и служб и Майкрософт. In the tree view of the Event Viewer, navigate to Event Viewer, Applications and Services Logs, and Microsoft. Щелкните правой кнопкой мыши Майкрософт и выберите пункт Просмотр , а затем Показать журналы аналитики и отладки , чтобы включить журналы аналитики и отладки. Right-click Microsoft and select View and then Show Analytic and Debug Logs to enable the analytic and debug logs

Убедитесь, что установлен флажок отображать журналы аналитики и отладки . Ensure that the Show Analytic and Debug Logs option is checked.

В древовидном представлении в Просмотр событий перейдите к Просмотр событий, журналы приложений и служб, Microsoft, Windows, сервер приложений — приложения. In the tree view in Event Viewer, navigate to Event Viewer, Applications and Services Logs, Microsoft, Windows, Application Server-Applications. Щелкните правой кнопкой мыши аналитика и выберите Включить журнал , чтобы включить аналитический журнал. Right-click Analytic and select Enable Log to enable the Analytic log.

Проверьте службу с помощью тестового клиента WCF, дважды щелкнув GetData . Test the service using the WCF test client by double-clicking GetData .

Откроется метод GetData . This opens the GetData method. Запрос принимает один параметр и проверяет, равно ли значение 0 (значение по умолчанию). The request accepts one parameter and ensures that the value is 0, which is the default.

Нажмите кнопку вызвать. Click Invoke.

Просмотрите события, переданные из рабочего процесса. Observe the events emitted from the workflow.

Вернитесь к Просмотр событий и перейдите в раздел Просмотр событий, журналы приложений и служб, Microsoft, Windows, сервер приложений — приложения. Switch back to Event Viewer and navigate to Event Viewer, Applications and Services Logs, Microsoft, Windows, Application Server-Applications. Щелкните правой кнопкой мыши аналитика и выберите Обновить. Right-click Analytic and select Refresh.

События рабочего процесса отображаются в средстве просмотра событий. The workflow events are displayed in the event viewer. Обратите внимание, что отображаются события выполнения рабочего процесса и одно из них является необработанным исключением, соответствующим ошибке в рабочем процессе. Notice that workflow execution events are displayed and that one of them is an unhandled exception that corresponds to the error in workflow. Кроме того, действие рабочего процесса создает событие предупреждения, указывающее, какое действие выдало ошибку. Also, a warning event is emitted from the workflow activity, which indicates that the activity is throwing a fault.

Повторите шаги 9 и 10, введя данные, отличные от 0, чтобы ошибка не появлялась. Repeat steps 9 and 10 with an input of data other than 0, so that no error is thrown.

Профили отслеживания позволяют подписаться на события, создаваемые средой выполнения при изменении состояния экземпляра рабочего процесса. Tracking profiles allow you to subscribe to events that are emitted by the runtime when the state of a workflow instance changes. Исходя из потребностей, можно создать профиль с низкой детализацией, который будет подписан на небольшой набор изменений состояния высокого уровня в рабочем процессе. Depending on your monitoring requirements, you can create a profile that is very coarse, which subscribes to a small set of high-level state changes on a workflow. В то же время можно создать очень точный профиль, выходные данные которого будут достаточно полными для последующей реконструкции выполнения. On the other hand, you can create a very precise profile whose output is rich enough to reconstruct the execution later. Образец демонстрирует события, создаваемые средой выполнения рабочего процесса для трассировки событий Windows с помощью HealthMonitoring Tracking Profile , создающего небольшой набор событий. The sample demonstrates the events emitted from the workflow runtime to ETW using the HealthMonitoring Tracking Profile , which emits a small set of events. В файле Web.config имеется другой профиль, создающий больше событий отслеживания, он называется Troubleshooting Tracking Profile . A different profile that emits more workflow tracking events is also provided in the Web.config that is named Troubleshooting Tracking Profile . При установке .NET Framework 4.6.1 .NET Framework 4.6.1 в файле Machine.config настраивается профиль по умолчанию с пустым именем. When the .NET Framework 4.6.1 .NET Framework 4.6.1 is installed, a default profile with an empty name is configured in the Machine.config file. Этот профиль используется конфигурацией поведения отслеживания ETW при отсутствии имени профиля или при задании пустого имени. This profile is used by the ETW tracking behavior configuration when no profile name or an empty profile name is specified.

Профиль отслеживания мониторинга работоспособности создает записи экземпляра рабочего процесса и записи распространения ошибок действий. The health monitoring tracking profile emits workflow instance records and activity fault propagation records. Этот профиль создается путем добавления следующего профиля отслеживания в файл конфигурации Web.config. This profile is created by adding the following tracking profile to a Web.config configuration file.

Профиль может быть изменен путем изменения конфигурации EtwTrackingParticipant на следующую. The profile can be changed by changing the EtwTrackingParticipant configuration to the following.

Очистка (необязательно) To clean up (Optional)

Откройте средство просмотра событий. Open Event Viewer.

Перейдите в раздел Просмотр событий, журналы приложений и служб, Microsoft, Windows, сервер приложений — приложения. Navigate to Event Viewer, Applications and Services Logs, Microsoft, Windows, Application Server-Applications. Щелкните правой кнопкой мыши аналитика и выберите Отключить журнал. Right-click Analytic and select Disable Log.

Перейдите в раздел Просмотр событий, журналы приложений и служб, Microsoft, Windows, сервер приложений — приложения. Navigate to Event Viewer, Applications and Services Logs, Microsoft, Windows, Application Server-Applications. Щелкните правой кнопкой мыши аналитика и выберите Очистить журнал. Right-click Analytic and select Clear Log.

Выберите параметр clear (очистить ), чтобы очистить события. Choose the Clear option to clear the events.

Известная проблема Known Issue

В средстве просмотра событий есть известная проблема, связанная с ошибкой декодирования событий трассировки событий Windows. There is a known issue in the Event Viewer where it may fail to decode ETW events. Может выводиться следующее сообщение об ошибке. You may see an error message that looks like the following.

Не удается найти описание для идентификатора события из источника Microsoft-Windows-Application Server-Applications. The description for Event ID from source Microsoft-Windows-Application Server-Applications cannot be found. Компонент, вызывающий это событие, не установлен на локальном компьютере или установка повреждена. Either the component that raises this event is not installed on your local computer or the installation is corrupted. Вы можете установить или исправить компонент на локальном компьютере. You can install or repair the component on the local computer.

При появлении этой ошибки нажмите кнопку «Обновить» в области действий. If you encounter this error, click refresh in the actions pane. Теперь декодирование события должно выполняться правильно. The event should now decode properly.

Образцы уже могут быть установлены на компьютере. The samples may already be installed on your computer. Перед продолжением проверьте следующий каталог (по умолчанию). Check for the following (default) directory before continuing.

Если этот каталог не существует, перейдите к примерам Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для платформа .NET Framework 4 , чтобы скачать все Windows Communication Foundation (WCF) и WF WF примеры. If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WF WF samples. Этот образец расположен в следующем каталоге. This sample is located in the following directory.

Читайте также:  Windows 10 как искать внутри файлов windows
Оцените статью