如果默认情况下禁用事件日志,是否有一种编程方式允许我启用它?简而言之,我只需要知道是否可以启用特定的事件日志,以便我可以以编程方式使用事件。
谢谢
我想阅读Windows的事件日志.我不确定这是不是最好的方法,但我想使用pywin32 - > win32evtlog模块来做到这一点.首先,可以使用此库从Windows 7读取日志,如果是这样,如何读取与应用程序运行相关的事件(运行.exe必须在Windows中的事件日志中留下痕迹我猜).
我已经设法在网上找到一些小例子,但这对我来说还不够,遗憾的是文档写得不好; /
import win32evtlog
hand = win32evtlog.OpenEventLog(None,"Microsoft-Windows-TaskScheduler/Operational")
print win32evtlog.GetNumberOfEventLogRecords(hand)
Run Code Online (Sandbox Code Playgroud) 我们公司刚刚更名,我正在重新命名一些软件的品牌。我遇到的一个问题是我们将事件日志写入为Company Name.ProductName. 有没有一种方法可以更改源的日志,而无需删除并重新创建源。
我已经能够确定与源相关的日志,但不确定如何更改日志而不删除除更改产品名称之外的现有数据,而我不想这样做。
if (!System.Diagnostics.EventLog.SourceExists("ProductName"))
{
System.Diagnostics.EventLog.CreateEventSource(
"ProductName", "Company Name");
}
else if (!EventLog.LogNameFromSourceName("ProductName", ".").Equals("Company Name"))
{
// ??? Not sure what to do here ???
}
eventLog.Source = "ProductName";
eventLog.Log = "Company Name";
eventLog.WriteEntry("The Service has been created.");
Run Code Online (Sandbox Code Playgroud) 这对我来说工作:
Get-WinEvent -FilterHashTable @{Logname = "ForwardedEvents" ; ID = 4625,4740}
Run Code Online (Sandbox Code Playgroud)
(……我期望的结果……)
这有效:
$EventId = "4625"
Get-WinEvent -FilterHashTable @{Logname = "ForwardedEvents" ; ID = $EventId}
Run Code Online (Sandbox Code Playgroud)
这不起作用:
$EventId = "4625,4740"
Get-WinEvent -FilterHashTable @{Logname = "ForwardedEvents" ; ID = $EventId}
Run Code Online (Sandbox Code Playgroud)
错误...
Get-WinEvent : No events were found that match the specified selection criteria.
At line:1 char:13
+ Get-WinEvent <<<< -FilterHashTable @{Logname = "ForwardedEvents" ; ID = $EventIds}
+ CategoryInfo : ObjectNotFound: (:) [Get-WinEvent], Exception
+ FullyQualifiedErrorId : NoMatchingEventsFound,Microsoft.PowerShell.Commands.GetWinEventCommand
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
有没有办法在Windows事件日志上设置权限,在本例中为Application,类似于您可以对目录和文件执行的操作?
我使用的是Windows Server 2003 x64 + VSTS 2008 + .Net 3.5 + C#,API EventLog.CreateEventSource有两个参数,source和logName.
我有两个问题,
乔治,提前谢谢
谁能解释为什么会发生以下情况:
我的ASP.NET应用程序需要访问Application事件日志.
当我最初访问Web应用程序时,它返回"安全"异常(这是预期的,因为我还没有授予写入应用程序事件日志的权限).
然后,我在以下注册表项上为IIS_IUSRS组授予读/写权限:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog.作为此操作的结果,我的Web应用程序开始工作.
现在我删除了我授予IIS_IUSRS组的权限.但我的Web应用程序仍在继续工作(虽然我希望再次提出"安全"异常)
那么,虽然删除了写入应用程序日志的权限,但为什么Web应用程序仍在继续工作?
asp.net registry event-log windows-server-2008-r2 windows-server
有两个EventLogMessages.dll文件,
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ EventLogMessages.dll
C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ EventLogMessages.dll
这些文件不是.NET文件(无法使用ILDasm进行反汇编)。这两个文件有什么区别?
我为VS2010使用了文件的2.0版本。这样安全吗?
如果没有,为什么我应该使用4.0版本呢?
-大特
我的问题与此问题非常相似如何以编程方式打开事件日志? 除了我记录任何东西.我需要从多个未连接的计算机创建日志条目的数据库.我得到.evtx文件,然后我尝试处理它们.现在我正在从导出的xml文件中执行此操作.但我想跳过xml转换部分.我已经阅读了https://msdn.microsoft.com/en-us/library/System.Diagnostics.EventLog.aspx文章,但我找不到我想要的东西.有没有办法在不转换为xml的情况下做我想做的事情?
我想知道如何才能达到事件日志条目.我有一个客户端服务器应用程序,它执行没有问题.我正在寻找的是id为1149的所有日志实例.这个日志是远程连接条目.我已经拿了一段代码,就在这里.
string logType = "System";
string str = "";
EventLog ev = new EventLog(logType, System.Environment.MachineName);
int LastLogToShow = ev.Entries.Count;
if (LastLogToShow <= 0)
Console.WriteLine("No Event Logs in the Log :" + logType);
// Read the last 2 records in the specified log.
int i;
for (i = ev.Entries.Count; i >= LastLogToShow - 1000 ; i--)
{
EventLogEntry CurrentEntry = ev.Entries[i];
if (CurrentEntry.InstanceId == 1149)
{
str += "Event type: " + CurrentEntry.EntryType.ToString() + "\n" +
"Event Message: " + CurrentEntry.Message …Run Code Online (Sandbox Code Playgroud) event-log ×10
c# ×5
.net ×2
logging ×2
powershell ×2
arrays ×1
asp.net ×1
permissions ×1
python ×1
python-2.7 ×1
pywin32 ×1
registry ×1
winapi ×1
windows ×1