Введение
В первой части цикла статей, посвященных оснастке консоли управления Microsoft Windows – «Просмотр событий» рассказывалось о самой концепции программы «Просмотр событий», о большинстве журналов, которые делятся на журналы Windows и журналы приложений и служб, были описаны свойства событий и рассматривались простейшие операции, которые можно проводить над журналами. Были описаны принципы работы с просмотром событий, очисткой журнала событий, установкой максимального размера для конкретного журнала и прочее. Вторая часть статьи имеет более административный характер и в основном предназначена для администраторов клиентских/серверных операционных систем и для опытных пользователей, которые хотят научиться отлавливать и исправлять ошибки системы и приложений. Во второй части статьи рассматривались следующие аспекты: работа с настраиваемыми представлениями и фильтрацией событий, сортировка и группировка событий для выбранного журнала. Также была описана работа, связанная с подписками на события, где был кратко описан метод реализации пересылки и сбора пересылаемых событий.
Эта часть статьи адресована по большей части системным администраторам и ИТ-специалистам, которые желают научиться работать с журналами событий средствами командной строки и командной оболочкой Windows PowerShell. В этом руководстве вы сможете найти информацию об использовании командлета Get-Eventlog, утилитах Eventcreate, Wevtutil, а также Wecutil.
Базовые операции с журналами Windows
В операционной системе Windows просматривать и фильтровать события можно не только при помощи оснастки консоли управления Microsoft «Просмотр событий». Более гибкие методы просмотра и фильтрации обеспечивает командная оболочка Windows PowerShell, которая устанавливается вместе с операционной системой Windows 7. Для просмотра и фильтрации событий, сохраняемых в журналах Windows, применяется командлет Get-EventLog. Для этого командлета можно применять 14 параметров: After, AsBaseObject, AsString, Before, ComputerName, EntryType, Index, InstanceID, List, LogName, Message, Newest, Source и UserName. Нет смыла подробно описывать значения каждого из параметров, так как в этом руководстве мы будем работать только с некоторыми параметрами данного командлета. Можно только отметить, что все эти параметры предназначены для управления форматом вывода и уровнем детализации. С их помощью можно применять гибкую фильтрацию для включения или исключения событий из набора результатов. Также можно автоматизировать рутинные операции, сохранив скрипт в файл с расширением *.ps1.
Просмотр событий
Для того чтобы просмотреть события определенного журнала, в командной оболочке PowerShell введите командлет Get-EventLog, укажите название журнала, который вы хотите просмотреть и, по необходимости, задайте параметры для отображения тех или иных свойств фильтрации или столбцов для отображения событий.
Например, введя командлет со следующим синтаксисом «Get-EventLog –Logname «Система», вы сможете просмотреть все события, которые создавались в журнале «Система». Если ввести команду без параметра –LogName и сразу в кавычках указать название журнала, то результат получится приблизительно таким:
Увеличить рисунок
На этом скриншоте отображены события журнала «Приложения» со следующими свойствами: Index (Номер), Time (Время), EntryType (Тип записи), Source (Источник), InstanceID (Код события) и Message (Сообщение). Все эти свойства событий хорошо нам известны по утилите графического интерфейса «Просмотр событий». Так же, как и в графическом интерфейсе, при помощи командной оболочки PowerShell вы можете отображать события по любым свойствам, которые доступны в утилите Get-EventLog, а также сортировать события по любому из столбцов.
Можно выводить следующие свойства событий: EventID (Код события), MachineName (Компьютер), Data, Index (Порядковый номер события), Category (Категория задач), CategoryNumber (Код категории), EntryType (Уровень), Message (Сообщение события), Source (Источник), ReplacementString, InstanceID, TimeGenerated (Дата генерации события), TimeWritten (Дата записи события), UserName (Пользователь), Site (Сайт), Conteiner (Подразделение). Для командной оболочки количество свойств меньше, нежели для утилиты «Просмотр событий», но здесь есть все те свойства, которые могут понадобиться для анализа журналов. Например, для того чтобы в командной оболочке вывести события только со столбцами «Уровень», «Дата записи события», «Источник», «Код события», «Категория» и «Сообщение события» для журнала «Система», примените следующую команду:
Get-EventLog –LogName ‘System’ | Format-Table EntryType, TimeWritten, Source, EventID, Category, Message
Для того чтобы события отобразились не в виде таблицы, а в виде списка, введите Format-List вместо Format-Table.
Увеличить рисунок
Фильтрация и сортировка событий
При использовании командлета Get-EventLog, командная оболочка Windows PowerShell возвращает все события в том порядке, как они были записаны в журнале, начиная от последней записи. Одним из важнейших свойств командлета Get-EventLog является возможность гибкой фильтрации и сортировки. Например, постоянно выводить все события выбранного журнала неудобно, и рано или поздно встанет задача отфильтровать журнал и вывести только ту информацию, которая действительно вам понадобится в данный момент. Одним из способов фильтрации является отображение событий за указанный промежуток времени или вывод только заданного количества последних событий. Для этого можно использовать следующие процедуры:
- Вывод событий, созданных до определенного промежутка времени. Для того чтобы вывести все события, которые произошли до указанного промежутка времени, в командлете Get-EventLog воспользуйтесь параметром –Before. Например, для вывода всех событий, которые произошли не позднее 05.11.2009 года, команда будет выглядеть следующим образом:
Get-EventLog –LogName ‘System’ –Before ‘5 ноября 2009’
- Вывод событий, созданных после определенного промежутка времени. Для того чтобы вывести все события, которые произошли после указанного промежутка времени, используется параметр –After. Например, для вывода всех событий, произошедших после 02.12.2009 года, команда будет выглядеть так:
Get-EventLog –LogName ‘System’ –After ‘2 декабря 2009’
- Вывод определенного количества последних событий. Для того чтобы командлет Get-EventLog отобразил только указанное число последних событий, воспользуйтесь параметром –Newest. Например, чтобы вывести только последние 20 событий, выполните следующие действия:
Get-EventLog –Logname ‘System’ –Newest 20
Увеличить рисунок- Некоторые параметры можно комбинировать. Например, если вам нужно вывести события только за октябрь 2009 года, введите следующее:
Get-EventLog –LogName ‘System’ –After ‘1 октября 2009’ –Before ’30 октября 2009’
Сортировать события можно по всем столбцам, которые выводит командлет Get-EventLog. Для этого выберите записи, которые планируете анализировать, сохранив их в переменной, а затем передайте их командлету Sort-Object, с помощью которого можно упорядочить записи событий по указанному свойству:
$event = Get-EventLog –LogName ‘System’ –Newest 200
$event | Sort-Odject –Property EventID
Группировать события можно по всем столбцам, которые выводит командлет Get-EventLog. Выберите записи, которые планируете анализировать, сохранив их в переменной, а затем передайте их командлету Group-Object, с помощью которого можно упорядочить записи событий по указанному свойству:
$event = Get-EventLog –LogName ‘System’ –Newest 200
$event | Group-Odject –Property EventID, Message
Чаще всего приходится анализировать ошибки и предупреждения, которые поступали в тот или иной журнал. При помощи фильтров можно отобразить только те события, у которых в свойстве EntryType содержится значение error. Для этого выбранные записи, сохраненные в переменную, перенаправляются командлету Where-Object, где выбираются только те записи, у которых в свойстве EntryType есть значение error, причем значение, которое указывается в командлете Where-Object к регистру не чувствительно. Поиск событий выглядит следующим образом:
$event = Get-EventLog –LogName ‘System’ –Newest 20
$event | Where-Object {$_.EntryType –match ‘error’}
Увеличить рисунок
Таким образом, при помощи командлета Where-Object, события можно находить абсолютно по любому свойству. В следующем примере будут отображены только те события, у которых EventID 24
$event = Get-EventLog –LogName ‘System’ –Newest 200
$event | Where-Object {$_.EventID –match ‘24’}
Настройка журналов событий средствами командной строки
Наряду с просмотром и фильтрацией журналов сообщений, с помощью командной оболочки Windows PowerShell можно задавать любые настройки для журналов событий. Управление журналами событий при помощи командной строки может сильно упростить работу в том случае, если вам нужно централизованно настроить журналы событий на всех компьютерах в предприятии, причем настраивать их можно даже удаленно. Для настройки журналов была разработана утилита командной строки Windows Events Command Line Utility, или по-другому говоря, команда Wevtutil. При помощи этой команды можно конфигурировать, очищать, архивировать, экспортировать журналы событий и выполнять множество других действий.
Краткое описание утилиты Wevtutil
В системной утилите Wevtutil можно использовать 12 команд и целый ряд параметров для конфигурирования и централизованного управления журналами Windows. Как команды утилиты, так и параметры команд можно вводить как в полной, так и в краткой форме. Синтаксис команды Wevtutil имеет следующий вид:
Wevtutil Команда (Аргумент (/Параметр: Значение))
- Команда – обязательная инструкция для выполнения определенных действий;
- Аргумент – Аргумент команды
- Параметр – Параметр, применяемый для указанной команды. У каждой команды есть свой набор параметров
- Значение – Значение параметра
В следующей таблице отображаются все возможные команды утилиты Wevtutil:
Полный вид команды | Краткий вид команды | Описание команды |
Archive-log | Al | Архивирование экспортированного журнала |
Clear-Log | Cl | Полная очистка журнала событий |
Enum-Logs | El | Вывод списка названий журналов |
Enum-publishers | Ep | Вывод списка зарегистрированных источников событий, включая системные службы |
Export-log | Epl | Экспорт журнала в формате Windows Event Log (*,evtx) |
Get-log | Gl | Вывод информации о конфигурации журнала |
Get-log-info | Gli | Вывод сведений о состоянии журнала |
Get-publisher | Gp | Вывод сведений об источнике событий |
Install-manifest | Im | Установка источников и журналов событий при помощи использования манифеста |
Query-events | Qe | Запрос сведений о событиях из журнала |
Set-log | Sl | Изменение конфигурации журнала |
Uninstall-manifest | Um | Удаление источников и журналов событий при помощи использования манифеста |
Примеры использования утилиты Wevtutil
Архивирование экспортированного журнала
Архивировать журнал в автономный файл можно, используя команду Archive-Log. При создании архивной копии журнала, создаются и подкаталоги с выбранными локалями. Синтаксис команды:
Wevtutil Archive-Log <файл_журнала> (/Locale: <локаль>)
Параметр Locale, или в краткой форме l, предназначен для указания дополнительных локалей при создании архивной копии журнала. Если этот параметр не указывать, то журнал будет заархивирован только с дефолтной локалью. Пример использования:
Wevtutil al D:\ArchLogs\System_nov2009.evtx /l: ru-RU
Очистка журнала событий
Для того чтобы очистить определенный журнал событий, используется команда Clear-Log. Синтаксис команды:
Wevtutil Clear-Log <имя_журнала> (/Backup: <путь>)
Параметр Backup, или в краткой форме – bu, предназначен для создания архивной копии перед очисткой журнала. Если этот параметр не указывается, то журнал очищается без сохранения. Пример использования:
Wevtutil cl Система /bu: d:\ArchLogs\System_nov2009.evtx
Вывод списка названий журналов
Для того чтобы вывести список всех журналов событий, которые созданы на компьютере, применяется команда Enum-Logs. В связи с тем, что на компьютере расположено множество журналов, поиск упрощает применение команды Find. Синтаксис команд:
Wevtutil Enum-Logs | find /I “Текст”
Где Текст представляет собой искомую часть названия журнала. Пример использования:
Wevtutil el| find /I “PowerShell”
Вывод списка зарегистрированных источников событий
Для вывода списка зарегистрированных источников событий используется команда Enum-Publishers. Совместно с этой командой предпочтительно применять команду FIND для указания точного поиска при выводе списка зарегистрированных источников событий. Синтаксис команды:
Wevtutil Enum-Publishers | find “Текст”
Где Текст представляет собой искомую часть названия журнала. Пример использования:
Wevtutil ep | find /I “Shell”
Экспортирование журнала событий
Для экспорта журналов в файл формата Windows Event Log (*.evtx) служит команда Export-Log. Синтаксис команды:
Wevtutil Export-Log <журнал> <конечный файл> (/logfile: true/false /structuredquery true/false /query <значение> /overwrite true/false)
С этой командой можно использовать четыре параметра:
- Параметр Logfile, или в краткой форме – lf, предназначен для того, чтобы можно было указать путь к экспортируемому файлу. Доступные значения True и False. Этот параметр опциональный.
- Параметр Structuredquery, или в краткой форме sq, указывает на то, что файл будет иметь структурированный запрос. Доступные значения True и False.
- При помощи параметра Query, или в краткой форме – q, можно воспользоваться сохраненным XPath-запросом с фильтром. Этот параметр доступен только в том случае, если значение параметра /sq – True.
- Параметр Overwrite, или в краткой форме – ow, отвечает за то, будет ли перезаписан журнал в том случае, если в папке уже присутствует файл с таким же названием. Доступные значения True и False.
Пример использования:
Wevtutil epl Система D:\ArchLogs\System_nov2009.evtx /ow: true
Вывод информации о конфигурации журнала
Выводить текущую информацию о конфигурации журнала можно при помощи команды Get-Log, или в краткой форме – gl. Синтаксис команды:
Wevtutil Get-Log <имя_журнала> (/Format: XML/Text)
Где Имя_Журнала – это название журнала событий, для которого нужно просмотреть конфигурацию. Параметр Format, или в краткой форме – f, отвечает за формат вывода файла. По умолчанию используется текстовый формат. Если указать значением параметра XML, то информация в файле будет иметь вид XML-файла. Пример использования:
Wevtutil gl Система /f:xml
Вывод сведения о состоянии журнала
Выводить сведения о состоянии журнала можно используя команду Get-Log-Info, или в краткой форме – Gli. Синтаксис этого параметра очень похож на синтаксис параметра Get-Log, а именно:
Wevtutil Get-Log-Info <имя_журнала> (/Format:XML/Text)
Имя_журнала и параметр Format такие же, как и у команды Get-Log. Пример использования:
Wevtutil gli Система /f:xml
Вывод сведений об источнике событий
Параметры записей из источников событий можно узнать, используя команду Get-Publisher, или в краткой форме – Gp. Эта команда удобна для вывода сведений зарегистрированных источников событий созданных посторонними приложениями. Синтаксис команды следующий:
Wevtutil Get-Publisher <Источник> (/Getevents: True/False /Getmessage: True/False /Format:XML/Text)
Источником называется полное имя зарегистрированного источника события. При помощи параметра Getevent, или в краткой форме – ge, можно получить полный список событий, генерируемых используемым источником в виде метаданных. Доступные значения параметра True и False. При помощи параметра Getmessage, или в краткой форме – gm, можно отображать фактические сообщения, вместо цифрового идентификатора. Значение параметра Format описано выше. Пример использования:
Wevtutil gp Система /ge:true /f:xml
Установка источников и журналов, с использованием манифестов
Устанавливать источники и журналы с помощью манифестов можно при помощи команды Import-Manifest, или в краткой форме – Im. Синтаксис следующий:
Wevtutil Import-Manifest <путь_к_файлу> (/ResourceFilePath:<Значение> /messageFilePath:<Значение> /parameterFilePath:<Значение>)
Все три параметра отвечают за замену указанного атрибута в поставщике элементов. Значением является путь к файлу. Пример использования:
Wevtutil im Manifest.man /rf:^%systemroot%^/System32/wevtutil.exe
Запрос сведений о событиях из журнала
Команда Query-Events, или в краткой форме – Qe, отвечает за просмотр текущих и архивных журналов. Синтаксис команды следующий:
Wevtutil Query-Events <путь> (/logfile:True/False /Structuredquery:True/False /Query:<Значение> /Bookmark:<Значение> /Savebookmark:<Значение> /Reversedirection:True/False /Format:XML/Text /Locale:<Значение> /Count:<n> /Element:<Значение>)
Параметры Logfile, Structuredquery, Query, Format, Locale аналогичны одноименным параметрам команд archive-log, export-log и get-log, С помощью параметра Bookmark, или в краткой форме – bm, можно указать полный путь к файлу, который содержит закладки из предыдущего запроса. Параметр Savebookmark, или в краткой форме – sbm, представляет собой то же самое, что и предыдущий параметр, но расширение файла должно быть *.xml. Параметр Reversedirection, или в краткой форме – rd, позволяет отображать события в обратном порядке. Если указать значение True, то последние события будут отображаться сверху. При помощи параметра Count, или в кратце – c, можно указать количество событий, которые будут отображаться при выводе команды. Пример использования:
Wevtutil qe D:\ArchLogsXML\System_nov2009.xml /sq:true /c:200 /rd:true /f:Text
Изменение конфигурации журнала
Для изменения конфигурации журналов, используется команда Set-Log, или в краткой форме – Sl. Только для этой команды можно использовать 12 параметров. Синтаксис команды следующий:
Wevtutil Set-log <Имя_журнала> (/Параметр:<Значение>)
В этом руководстве рассматриваются лишь некоторые параметры этой команды:
- При помощи параметра Enabled, в краткой форме – e, можно активировть либо деактивировть журнал.
- Параметр Quiet, в краткой форме – q, отвечает за отображение вывода команды. Если значение указано True, то после выполнения команды пользователь не будет оповещен.
- Параметр Maxsize, в краткой форме – ms, отвечает за максимальный размер файла журнала.
- С помощью параметра AutoBackup, в краткой форме – ab, можно настроить автоматическое архивирование журнала. Доступные значения True и False
- Имя файла журнала можно указать при помощи параметра LogFileName, в краткой форме – lfn.
- Уровень фильтрации журнала указывается при помощи параметра Level, в краткой форме – l, где значением параметра может быть любое доступное значение уровня.
- Фильтрацию по ключевым словам можно установить благодаря параметру Keywords, в краткой форме – k. Значение должно не превышать 64-х бит.
- Запрещать перезапись событий в указанном журнале можно с помощью параметра Retention, в кратком виде – rt. Доступные значения – True и False.
Пример изменения максимального размера в 1 Мб для журнала Приложения:
Wevtutil sl Приложения /ms:1048576
Удаление источников и журналов событий, используя манифест
Удалить источник журналов событий, с использованием манифеста можно при помощи команды Uninstall-Manifest, в кратком виде – Um. Для этой команды нет параметров. Нужно только указать путь к манифесту. Пример использования:
Wevtutil um myManifest.man
Работа с подписками
Процесс настройки пересылки событий и создания подписок в предыдущей части статьи был описан при помощи графического интерфейса. В этом разделе описывается способ настройки пересылки событий, а также создания и управления подписками при помощи командной строки и утилиты Сборщика событий Windows – Wecutil.
Настройка пересылки и сбора событий
Для того чтобы правильно настроить компьютер, который будет являться сборщиком событий, желательно, чтобы он находился в домене. Прежде всего, войдите в систему с учетной записью, которая в домене имеет административные привилегии. В предыдущей части этой статьи я подробно описал метод настройки компьютера пересылки вручную. Для этого нужно было настроить автоматический запуск службы удаленного управления Windows с задержкой, запустить саму службу, создать прослушиватель RM, а также создать исключения брандмауэра для трафика Windows.
Все эти действия можно выполнить при помощи командной строки. Используйте средство командной строки удаленного управления Windows – WinRM. При помощи этой утилиты легко организовывается протокол управления веб-службами WS-Management, обеспечивается безопасная связь с локальными и удаленными компьютерами с помощью веб-служб. В командной строке введите:
Winrm quickconfig –q
Если не указывать параметр q, то вам понадобится нажать на клавишу Y для подтверждения действий.
Далее для настройки сбора пересылаемых событий нужно воспользоваться утилитой wecutil с командой qc, которая включает и настраивает службу сборщика событий Windows (Windows Event Collector). По запросу нужно будет нажать на клавишу Y.
На контроллере домена нужно создать глобальную группу и добавить записи компьютеров-приемников событий. Затем в локальной группе администраторов создайте группу на каждом из компьютеров-источников. Для того чтобы выполнить эти действия, в командной строке введите следующее:
Net localgroup Administrators <Имя_глобальной_группы> /add
Создание и управление подписками
Сложные рутинные действия, которые проводятся при помощи графического интерфейса для создания и управления подписок можно автоматизировать средствами командной строки. Для этого, на центральном сервере регистрации событий применяется утилита командной строки Wecutil. Для этой утилиты созданы следующие команды:
Полный вид команды | Краткий вид команды | Описание команды |
Enum-subscription | Es | Вывод перечня подписок |
Get-Subscription | Gs | Отображение конфигурации подписок |
Get-SubscriptionRuntimeStatus | Gr | Вывод состояния выполнения времени подписок |
Set-Subscribtion | Ss | Изменение конфигурации подписки |
Create-Subscription | Cs | Создание новой подписки |
Delete-Subscription | Ds | Удаление подписки |
Retry-Subscription | Rs | Повторный опрос источников, которые заданы в подписке |
Quick-Config | Qc | Включение и настройка службы Сборщика событий Windows |
Вывод перечня подписок
Команда Enum-Subscribtion, в кратком виде es, предназначена для отображения перечня имен всех существующих подписок на удаленные события. Для этой команды не существует параметров. Пример использования:
Wecutil es
Отображение конфигурации подписок
Команда Get-Subscription, в кратком виде gs, применяется для отображения сведений о конфигурации определенной удаленной подписки. Синтаксис команды:
Wecutil Get-Subscription <код_подписки> (/Format:XML/Terse /Unicode:True/False)
Где Код_подписки – это строка, которая определяет подписку, указанную тегом <SubscriptionID> в XML-файле конфигурации, использованном для создания подписки. Параметр Format, в кратком виде f, предназначен для определения вывода информации. Если указано значение XML, то данные будут выводиться в формате XML. Если указано значение Terse, то данные будут выводиться как пары имя-значение. Параметр Unicode отвечает за то, будут ли данные выводиться в Юникоде (UTF-16). Доступные значения True и False. Пример использования:
Wecutil gs newsubscribtion /f:xml
Вывод состояния выполнения времени подписок
Команда Get-SubscriptionRuntimeStatus, в кратком виде gr, отвечает за отображение состояния выполнения подписки. В выводе команды можно увидеть сведения о последних ошибках, а также о состоянии подписки. В этой команде нужно указать только код подписки. Для нее не существует параметров. Пример использования:
Wecutil gr newsubscribtion
Удаление подписки
Команда Delete-Subscribtion, в кратком виде ds, позволяет удалить определенную подписку и отменить подписки на все источники событий, из которых события доставляются в файл журнала для этой подписки. Те события, которые уже получены и записаны в журнал, не удаляются. Для этой команды также нужно ввести только код подписки, и не существует никаких дополнительных параметров. Пример использования:
Wecutil ds newsubscription
Повторный опрос источников, заданных в подписке
Команда Retry-Subscription, в кратком виде rs, позволяет возобновить неактивные подписки путем повторной активации всех или указанных источников событий с помощью установки подключения и отправки запроса на удаленную подписку. К отключенным источникам такую попытку применить невозможно. Синтаксис команды следующий:
Wecutil Retry-Subscription <Код_подписки> <источник_подписки>
Где Код_подписки – это строка, которая определяет подписку, указанную тегом <SubscriptionID> в XML-файле конфигурации, использованном для создания подписки. Источником подписки называется строка, определяющая компьютер с помощью полного доменного имени, IP-адреса либо NetBIOS-имени, служащего источником событий. Пример использования:
Wecutil rs newsubcribtion
Создание новой подписки
Для создания подписки применяется команда Create-Subscribtion, в кратком виде cs, совместно с конфигурационным XML-файлом. Конфигурационный файл представляет собой XPath-запрос с определением пересылаемых событий, компьютера источника и идентификатора подписки. Синтаксис команды следующий:
Для создания подписки применяется команда Create-Subscribtion, в кратком виде cs, совместно с конфигурационным XML-файлом. Конфигурационный файл представляет собой XPath-запрос с определением пересылаемых событий, компьютера источника и идентификатора подписки. Синтаксис команды следующий:
Wecutil Create-Subscription <XML_файл> (/CommonUsername:<имя_пользователя> /CommonUserPassword:<пароль>)
- Параметр CommonUserName, в кратком виде cup, задает общие учетные данные пользователя, используемые для источника событий, у которых нет собственных учетных данных пользователя. Если задан этот параметр, то параметры UserName и UserPassword для отдельных источников событий из файла конфигурации игнорируются. Если требуется использовать другие учетные данные для конкретного источника событий, они задаются командой ss (Set-Subscription).
- Параметр CommonUserPassword, в кратком виде cup, задает пароль пользователя для общих учетных данных пользователя. Когда пароль задается как * (звездочка), пароль считывается с консоли. Этот параметр действителен только при заданном параметре /cun (CommonUserName).
XML-файл конфигурации должен выглядеть примерно следующим образом:
<Subscription xmlns="http://schemas.microsoft.com/2006/03/windows/events/subscription">
<SubscriptionId>SampleCISubscription</SubscriptionId>
<SubscriptionType>CollectorInitiated</SubscriptionType>
<Description>Collector Initiated Subscription Sample</Description>
<Enabled>true</Enabled>
<Uri>http://schemas.microsoft.com/wbem/wsman/1/windows/EventLog</Uri>
<!-- Use Normal (default), Custom, MinLatency, MinBandwidth -->
<ConfigurationMode>Custom</ConfigurationMode>
<Delivery Mode="Push">
<Batching>
<MaxItems>20</MaxItems>
<MaxLatencyTime>60000</MaxLatencyTime>
</Batching>
<PushSettings>
<HostName>thisMachine.myDomain.com</HostName>
<Heartbeat Interval="60000" />
</PushSettings>
</Delivery>
<Expires>2010-01-01T00:00:00.000Z</Expires>
<Query>
<![CDATA[
<QueryList>
<Query Path="Application">
<Select>*</Select>
</Query>
</QueryList>
]]>
</Query>
<ReadExistingEvents>false</ReadExistingEvents>
<TransportName>http</TransportName>
<ContentFormat>RenderedText</ContentFormat>
<Locale Language="ru-RU" />
<LogFile>ForwardedEvents</LogFile>
<CredentialsType>Default</CredentialsType>
<EventSources>
<EventSource Enabled="true">
<Address>mySource.myDomain.com</Address>
<UserName>myUserName</UserName>
</EventSource>
</EventSources>
</Subscription>
Пример использования:
Wecutil cs newsubscription.xml
Изменение конфигурации подписки
Для изменения свойств подписки применяется команда Set-Subscription, в кратком виде ss, при помощи которой можно настроить существующую подписку так, как вам нужно при помощи командной строки или XML-файла конфигурации. Для этой команды можно использовать 33 параметра. Синтаксис команды следующий:
Wecutil Set-subscribtion <Код_подписки> (/Параметр:Значение)
В этом руководстве рассматриваются лишь некоторые параметры этой команды:
- Параметр Config, в кратком виде c, представляет собой строку, указывающую путь к XML-файлу, содержащему конфигурацию подписки. Путь может быть абсолютным или относительным по отношению к текущей папке. Этот параметр может использоваться только с необязательными параметрами /cus (CommonUserName) и /cup (CommonUserPassword) и является взаимно исключающим со всеми другими параметрами.
- Параметр Enabled, в кратком виде e, включает или отключает подписку. Доступные значения true или false.
- Параметр Description, в кратком виде d, представляет собой строку, которая описывает подписку.
- При помощи параметра Expires, в кратком виде ex, можно задать срок истечения подписки. Значение задается в стандартном формате XML или формате "дата/время" ISO8601: гггг-ММ-ддТчч:мм:сс[.ссс][Z], где T - это разделитель компонентов времени, а Z указывает на время в формате UTC.
- Параметр URI представляет строку, задающую тип событий, на которые настроена подписка. Адрес компьютера-источника событий вместе с URI уникальным образом определяет источник событий.
- Параметр ConfigurationMode, в кратком виде cm, задает режим конфигурации. Значение параметра может быть следующим: Normal, Custom, MinLatency или MinBandwidth. Режимы Normal, MinLatency, и MinBandwidth задают режим доставки, максимальное число элементов доставки, интервал пульсации и максимальное время задержки доставки. Параметры /dm (DeliveryMode), /dmi (DeliveryMaxItems), /hi (HeartbeatInterval) b /dmlt (DeliveryMaxLatencyTime) можно указывать только при выборе режима конфигурации Custom.
- Параметр Dialect, в кратком виде dia, указывает диалект, используемый в строке запроса.
- Параметр ContentFormat, в кратком виде cf, указывает формат возвращаемых событий. Параметр может иметь значение Events или RenderedText. При использовании RenderedText события возвращаются с локализованными строками (например, описанием события), связанными с событиями.
- Параметр Locale, в кратком виде l, определяет языковой стандарт для доставки локализованных строк в формате RenderedText. Язык представляет идентификатор языка или культуры, например "ru-RU". Этот параметр является действительным только в том случае, если параметр /cf (ContentFormat) имеет значение RenderedText.
- Параметр HeartbeatInterval, в кратком виде hi, представляет собой число, задающее тактовый интервал для извещающих (push) подписок или интервал опроса для опрашивающих (pull) подписок. МС задает число миллисекунд. Этот параметр действителен, только когда параметр /cm (ConfigurationMode) имеет значение Custom.
- Параметр EventSourceAddress, в кратком виде esa, отвечает за адрес источника событий. Этот параметр должен использоваться с параметрами /ese (EventSourceEnabled), /aes (AddEventSource), /res (RemoveEventSource) или /un (UserName) и /up (UserPassword).
- При помощи параметра EventSourceEnabled, в кратком виде ese, можно включать или отключать источник событий. Допустимые значения true и false. Этот параметр можно использовать, только если задан параметр /esa (EventSourceAddress). По умолчанию этот параметр имеет значение true.
- Параметр AddEventSource, в кратком виде aes, используется для добавления источника событий, задаваемого параметром /esa (EventSourceAddress), если он еще не является частью подписки. Если в параметре /esa (EventSourceAddress) указан адрес, уже являющийся частью подписки, возникает ошибка. Этот параметр можно использовать, только если задан параметр /esa (EventSourceAddress).
- При помощи параметра RemoveEventSource, в кратком виде res, можно удалять источник событий, задаваемый параметром /esa (EventSourceAddress), если он уже является частью подписки. Если в параметре /esa (EventSourceAddress) указан адрес, уже являющийся частью подписки, возникает ошибка. Этот параметр можно использовать, только если задан параметр /esa (EventSourceAddress).
- Параметром UserName, в кратком виде un, можно задать учетные записи пользователей, которые будут использованы источником, указанным в параметре /esa (EventSourceAddress). Этот параметр можно использовать, только если задан параметр /esa (EventSourceAddress).
- Параметр UserPassword, в кратком виде up, задает пароль для учетных данных пользователя с источником, указанным в параметре /esa (EventSourceAddress). Этот параметр можно использовать, только если задан параметр /un (UserName).
Пример использования:
wecutil ss sub2 /esa:myComputer /ese /un:USER /up:* /cm:Normal
Заключение
В этой заключительной статье, посвященной работе с журналами событий Windows, рассказывается о применении командной строки и командной оболочки Windows PowerShell для работы с журналами событий. Подробно рассмотрены действия для базовых операций, которые проводятся над журналами событий при помощи командной оболочки Windows PowerShell, всевозможных настройках журналов событий при помощи утилиты командной строки Wevtutil, а также об операциях, связанных с настройкой пересылки и управлением подписками при помощи утилиты командной строки Wecutil.
Разумеется, это руководство нельзя считать исчерпываемым, но в нем описано большинство операций и процедур, которые должны использовать системные администраторы и ИТ-специалисты на предприятиях для устранения большинства проблем, которые могут возникнуть у конечных пользователей и обеспечения стабильной работы ИТ-инфраструктуры в целом.