Как создать источник журнала событий Windows из командной строки?
Я создаю ASP.NET приложение, которое будет записывать некоторые вещи в журнал событий Windows. Для этого сначала должен быть создан источник событий. Это требует административных привилегий, поэтому я не могу сделать это в ASP.NET приложение.
есть ли существующее приложение командной строки в комплекте с Windows, которое может создать источник журнала событий, или я должен развернуть свой собственный?
8 ответов:
попробовать "eventcreate.EXE-файл"
пример:
eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO MYEVENTSOURCE /D "My first log"это создаст новое событие источник имени
MYEVENTSOURCEподAPPLICATIONсобытие log какINFORMATIONсобытие тип.Я думаю, что эта программа включена только с XP и далее.
более дальнеишее чтение
Windows IT Pro:jsi Tip 5487. Windows XP включает в себя утилиту EventCreate для создания пользовательских события.
тип
eventcreate /?в командной строкеMicrosoft TechNet: Справочник По Командной Строке Windows:Eventcreate
SS64: ссылка командной строки Windows:Eventcreate
попробуйте командлеты журнала событий PowerShell 2.0
бросая это в PowerShell 2.0 и выше:
выполнить
New-EventLogодин раз, чтобы зарегистрировать источник событий:New-EventLog -LogName Application -Source MyAppзатем использовать
Write-EventLogдля записи в журнал:Write-EventLog -LogName Application -Source MyApp -EntryType Error -Message "Immunity to iocaine powder not detected, dying now" -EventId 1
вы также можете использовать Windows PowerShell с помощью следующей команды:
if ([System.Diagnostics.EventLog]::SourceExists($source) -eq $false) { [System.Diagnostics.EventLog]::CreateEventSource($source, "Application") }убедитесь, что источник не существует перед вызовом CreateEventSource, иначе он вызовет исключение.
дополнительная информация:
eventcreate2 позволяет создавать пользовательские журналы, где eventcreate нет.
Если кто-то заинтересован, можно также создать источник событий вручную, добавив некоторые значения реестра.
сохраните следующие строки как a .reg файл, а затем импортировать его в реестр, дважды щелкнув его:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\YOUR_EVENT_SOURCE_NAME_GOES_HERE] "EventMessageFile"="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\EventLogMessages.dll" "TypesSupported"=dword:00000007это создает источник событий с именем
YOUR_EVENT_SOURCE_NAME_GOES_HERE.
однако версия cmd / batch работает вы можете столкнуться с проблемой, когда вы хотите определить eventID, который выше 1000. Для создания событий с eventID 1000+ я буду использовать powershell следующим образом:
$evt=new-object System.Diagnostics.Eventlog(“Define Logbook”) $evt.Source=”Define Source” $evtNumber=Define Eventnumber $evtDescription=”Define description” $infoevent=[System.Diagnostics.EventLogEntryType]::Define error level $evt.WriteEntry($evtDescription,$infoevent,$evtNumber)пример:
$evt=new-object System.Diagnostics.Eventlog(“System”) $evt.Source=”Tcpip” $evtNumber=4227 $evtDescription=”This is a Test Event” $infoevent=[System.Diagnostics.EventLogEntryType]::Warning $evt.WriteEntry($evtDescription,$infoevent,$evtNumber)
вы можете создать свое собственное событие с помощью диагностики.Класс журнала событий. Откройте приложение windows и нажмите кнопку, чтобы выполнить следующий код.
System.Diagnostics.EventLog.CreateEventSource("ApplicationName", "MyNewLog");"MyNewLog"означает имя, которое вы хотите присвоить вашему журналу просмотра событий.
для получения дополнительной информации, проверьте эту ссылку [ http://msdn.microsoft.com/en-in/library/49dwckkz%28v=vs.90%29.aspx]
Comments