当前位置:  开发笔记 > 后端 > 正文

如何从命令行创建Windows EventLog源?

如何解决《如何从命令行创建WindowsEventLog源?》经验,为你挑选了4个好方法。

我正在创建一个ASP.NET应用程序,它将一些东西记录到Windows EventLog.要执行此操作,必须首先创建事件源.这需要管理权限,所以我无法在ASP.NET应用程序中执行此操作.

是否存在与Windows捆绑在一起的可以创建事件日志源的现有命令行应用程序,还是我必须自行推出?



1> 小智..:
试试"eventcreate.exe"

一个例子:

eventcreate /ID 1 /L APPLICATION /T INFORMATION  /SO MYEVENTSOURCE /D "My first log"

这将创建一个在事件日志下命名为事件类型的新事件.MYEVENTSOURCEAPPLICATIONINFORMATION

我认为这个实用程序仅包含在XP之后.

进一步阅读

Windows IT Pro:JSI技巧5487.Windows XP包含用于创建自定义事件的EventCreate实用程序.

类型eventcreate /?在命令提示符

Microsoft TechNet:Windows命令行参考:Eventcreate

SS64:Windows命令行参考:Eventcreate


eventcreate在现有源下记录事件,它不会像OP请求的那样从头开始创建新源.
你必须右键单击"cmd"并从vista上选择"以管理员身份运行"
@PaulChavez如果命名源不存在,则创建它.
尽管这有效并创建了新的源,但我所有的事件都具有“找不到源myApp的事件ID 0的描述。引发此事件的组件未安装在本地计算机上,或者安装已损坏”,因此我最后编辑注册表

2> roufamatic..:
试试PowerShell 2.0的EventLog cmdlet

为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


这工作正常,只需记住使用提升的权限运行PowerShell.
我必须打开和关闭事件查看器才能看到我创建的新日志

3> Luis Rocha..:

您还可以使用以下命令使用Windows PowerShell:

if ([System.Diagnostics.EventLog]::SourceExists($source) -eq $false) {
    [System.Diagnostics.EventLog]::CreateEventSource($source, "Application")
}

确保在调用CreateEventSource之前检查源是否不存在,否则将引发异常.

欲了解更多信息:

http://msdn.microsoft.com/en-us/library/9t766zhb.aspx



4> Nick Bolton..:

eventcreate2允许您创建自定义日志,而 eventcreate则不会.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有