sergey vasin

The IT blog

Создание и использование нового журнала событий при помощи PowerShell – Hey, Scripting Guy! Blog

leave a comment »

Резюме: Microsoft Scripting Guy, Ed Wilson рассказывает о создании и использовании нового журнала событий посредством Windows PowerShell.

Использование PowerShell для создания нового журнала событий

Одна из замечательных вещей, которые можно делать с помощью Windows PowerShell – это создание собственного журнала событий. Здесь я говорю о классическом журнале событий (примеры таких журналов – это System, Security и Applcation). Windows PowerShell позволяет свободно читать, записывать, архивировать и очищать такие виды журналов.

Создаем журнал событий

Для создания нового журнала событий я воспользуюсь командлетом New-EventLog. Для этого мне понадобятся три вещи:

1. Открыть консоль Windows PowerShell с административными правами – в противном случае при попытке создания нового журнала будет возвращено сообщение об ошибке.

2. Имя создаваемого журнала.

3. Также мне будет нужно указать источник событий нового журнала.

Следующая команда создает новый классический журнал событий с именем ScriptingGuys и указывает источник событий с именем scripts.

New-EventLog -LogName ScriptingGuys -Source scripts

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

10:06 C:\> Get-EventLog -List

Max(K) Retain OverflowAction Entries Log

—— —— ————— ——- —

20,480 0 OverwriteAsNeeded 18,504 Application

20,480 0 OverwriteAsNeeded 0 HardwareEvents

512 7 OverwriteOlder 0 Internet Explorer

20,480 0 OverwriteAsNeeded 0 Key Management Service

10,240 0 OverwriteAsNeeded 4 Lenovo-Customer Feedback

512 7 OverwriteOlder 2 Lenovo-Lenovo Patch Utility/Admin

128 0 OverwriteAsNeeded 30 OAlerts

512 7 OverwriteOlder 0 ScriptingGuys

Security

20,480 0 OverwriteAsNeeded 21,437 System

15,360 0 OverwriteAsNeeded 10,059 Windows PowerShell

Конфигурируем новый журнал событий

Одна из вещей, которую я заметил при проверке создания журнала, это то, что его размер установлен в 512 KB, а срок сохранения событий равен 7 дням. Мне же нужно, чтобы размер журнала не превышал 64 KB, и события очищались по мере заполнения журнала. Мне казалось, что для этого подошел бы командлет Set-EventLog, однако командлета с таким именем не оказалось. Нужный командлет – Limit-EventLog. Просматривая файл справки, я заметил, что он обладает только одним набором параметров. Мне нужно установить параметр –OverflowAction в OverWriteAsNeeded, поэтому я предположил, что –RetentionDays нужно установить в 0. Я попробовал запустить следующую команду, но, как видите, появилось сообщение об ошибке.

10:19 C:\> Limit-EventLog -OverflowAction OverWriteAsNeeded -RetentionDays 0 -Maximum

Size 64KB

Limit-EventLog : Cannot validate argument on parameter ‘RetentionDays’. The 0 argument is less than the minimum allowed range of 1. Supply an argument that is greater than or equal to 1 and then try the command again.

At line:1 char:65

+ Limit-EventLog -OverflowAction OverWriteAsNeeded -RetentionDays 0 -MaximumSize

+ ~

+ CategoryInfo : InvalidData: (:) [Limit-EventLog], ParameterBindingValidationException

+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.LimitEventLogCommand

Тогда я попробовал запустить команду без параметра –RetentionDays, и это сработало.

Limit-EventLog -OverflowAction OverWriteAsNeeded -MaximumSize 64KB -LogName scriptingguys

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

10:23 C:\> Get-EventLog -list | ? log -eq scriptingguys

Max(K) Retain OverflowAction Entries Log

—— —— ————— ——- —

64 0 OverwriteAsNeeded 0 ScriptingGuys

Я не могу обратиться к пустому журналу событий

Довольно интересно, что я не могу обратиться к журналу, не содержащему записей. Я пытаюсь получить содержимое журнала посредством командлета Get-EventLog и получаю следующую ошибку.

10:23 C:\> Get-EventLog -LogName scriptingguys

Get-EventLog : No matches found

At line:1 char:1

+ Get-EventLog -LogName scriptingguys

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : ObjectNotFound: (:) [Get-EventLog], ArgumentException

+ FullyQualifiedErrorId : GetEventLogNoEntriesFound,Microsoft.PowerShell.Commands.GetEventLogCommand

Запись в журнал событий

Для записи события, мне понадобится следующая информация:

1. Имя журнала событий (в нашем случае – это ScriptingGuys)

2. Источник события (scripts)

3. EventID (я начну с 1)

4. Тип записи (Information, Warning, Error)

5. Сообщение (то, что я хочу записать)

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

Write-EventLog -LogName ScriptingGuys -Source scripts -Message «Dude, it works … COOL!» -EventId 0 -EntryType information

Теперь я снова воспользуюсь командлетом Get-EventLog, чтобы получить только что записанное событие.

10:27 C:\> Get-EventLog -LogName scriptingguys

Index Time EntryType Source InstanceID Message

—— —- ——— —— ———- ——-

1 Jan 29 10:27 Information scripts 0 Dude, it wor…

Автор:

Ed Wilson, Microsoft Scripting Guy

Оригинал:

http://blogs.technet.com/b/heyscriptingguy/archive/2013/02/01/use-powershell-to-create-and-to-use-a-new-event-log.aspx


Страницы в социальных сетях:

Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell


Реклама

Written by Сергей Васин

Март 21, 2013 в 13:55

Опубликовано в HeyScriptingGuyBlog, PowerShell

Tagged with

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s