Как создать источник Windows EventLog из командной строки?
Я создаю ASP.NET приложение, которое будет регистрировать некоторые вещи в Windows EventLog. Для этого сначала необходимо создать источник событий. Это требует административных привилегий, поэтому я не могу сделать это в ASP.NET app.
существует ли существующее приложение командной строки в комплекте с Windows, которое может создать источник журнала событий, или я должен развернуть свой собственный?
8 ответов
попробовать "eventcreate.EXE-файл"
пример:
eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO MYEVENTSOURCE /D "My first log"
это создаст новое событие источник имени MYEVENTSOURCE
под APPLICATION
событие log as 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]