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

Резюме: 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.

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. Я попробовал запустить следующую команду, но, как видите, появилось сообщение об ошибке.

C:\> Limit-EventLog -OverflowAction OverWriteAsNeeded -RetentionDays 0 -MaximumSize 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, чтобы убедиться, что изменения внесены. Вывод команды указывает на то, что внесение изменений произошло успешно.

C:\> Get-EventLog -list | ? log -eq scriptingguys
Max(K) Retain OverflowAction    Entries Log
------ ------ --------------    ------- ---
    64      0 OverwriteAsNeeded 0       ScriptingGuys

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

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

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, чтобы получить только что записанное событие.

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


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

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

Логотип WordPress.com

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

Google photo

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

Фотография Twitter

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

Фотография Facebook

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

Connecting to %s