명령줄에서 Windows 이벤트 로그 소스를 만드는 방법은 무엇입니까?
Windows 이벤트 로그에 기록할 ASP.NET 응용 프로그램을 만들고 있습니다.이렇게 하려면 이벤트 소스를 먼저 만들어야 합니다.이 작업은 관리자 권한이 필요하므로 ASP.NET 앱에서 수행할 수 없습니다.
이벤트 로그 소스를 생성할 수 있는 윈도우즈와 번들로 제공되는 기존 명령줄 애플리케이션이 있습니까? 아니면 직접 롤아웃해야 합니까?
"eventcreate.exe"를 사용해 보십시오.
예:
eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO MYEVENTSOURCE /D "My first log"
이름이 지정된 새 이벤트 소스가 생성됩니다.MYEVENTSOURCE
아래APPLICATION
이벤트 로그INFORMATION
이벤트 유형.
이 유틸리티는 XP 이후에만 포함된 것 같습니다.
진일보한 내용
Windows IT Pro: JSI 팁 5487. Windows XP에는 사용자 지정 이벤트를 생성하기 위한 EventCreate 유틸리티가 포함되어 있습니다.
CMD 프롬프트 입력
Microsoft TechNet: Windows 명령줄 참조:이벤트 생성
SS64: Windows 명령줄 참조:이벤트 생성
PowerShell 2.0의 EventLog cmdlet을 사용해 보십시오.PowerShell 2.0 이상의 경우:
한 번 실행하여 이벤트 소스를 등록합니다.
New-EventLog -LogName Application -Source MyApp
그런 다음 를 사용하여 로그에 기록합니다.
Write-EventLog -LogName Application -Source MyApp -EntryType Error -Message "Immunity to iocaine powder not detected, dying now" -EventId 1
윈도우즈 PowerShell을 다음 명령과 함께 사용할 수도 있습니다.
if ([System.Diagnostics.EventLog]::SourceExists($source) -eq $false) {
[System.Diagnostics.EventLog]::CreateEventSource($source, "Application")
}
CreateEventSource를 호출하기 전에 소스가 존재하지 않는지 확인하십시오. 그렇지 않으면 예외가 발생합니다.
자세한 정보:
eventcreate2를 사용하면 사용자 지정 로그를 만들 수 있지만 eventcreate는 그렇지 않습니다.
관심 있는 사용자가 있는 경우 일부 레지스트리 값을 추가하여 이벤트 소스를 수동으로 만들 수도 있습니다.
다음 행을 .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 버전이 작동하지만 이벤트를 정의할 때 문제가 발생할 수 있습니다.1000보다 큰 아이디입니다.이벤트를 사용하여 이벤트를 생성하는 경우1000+의 ID는 다음과 같이 파워셸을 사용합니다.
$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)
파워셸 7
이 답변은 5.x에서는 효과가 있었지만 7.x에서는 효과가 없었습니다. 잠시 고민한 끝에 다음과 같은 작업을 하게 되었습니다.
Import-Module Microsoft.PowerShell.Management -UseWindowsPowerShell
New-EventLog -LogName Application -Source MyApp
이 SO 답변을 통해 가져올 모듈을 우연히 발견했습니다.필요에 따라 윈도우즈 전용 cmdlet용으로 가져올 수 있는 모듈이 있습니다.나는 당신의 cmdlet을 기반으로 어떤 모듈을 가져올지 당신이 어떻게 결정할지 아직도 생각하고 있습니다.
진단을 사용하여 사용자 지정 이벤트를 생성할 수 있습니다.이벤트 로그 클래스입니다.Windows 응용 프로그램을 열고 단추를 클릭하여 다음 코드를 수행합니다.
System.Diagnostics.EventLog.CreateEventSource("ApplicationName", "MyNewLog");
"MyNewLog"는 로그인 이벤트 뷰어에 지정할 이름을 의미합니다.
자세한 내용은 이 링크를 확인하십시오 [ http://msdn.microsoft.com/en-in/library/49dwckkz%28v=vs.90%29.aspx ].
언급URL : https://stackoverflow.com/questions/446691/how-to-create-windows-eventlog-source-from-command-line
'programing' 카테고리의 다른 글
Firebase App이 python에서 이미 초기화되었는지 확인합니다. (0) | 2023.06.11 |
---|---|
R 프로세스에 사용할 수 있는 메모리 증가(또는 감소) (0) | 2023.06.11 |
휴대용 분기 예측 힌트 (0) | 2023.06.11 |
인수 구문:'x'가 있는 경우 'y' 인수가 필요합니다. (0) | 2023.06.11 |
R에서 data.frame의 처음 4개 행을 선택합니다. (0) | 2023.06.11 |