- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题是否可以在非“以管理员身份运行”的进程中导出事件日志?
我正在遵循 https://msdn.microsoft.com/en-us/library/bb671203(v=vs.90).aspx 中的示例代码
using (var els = new EventLogSession())
{
els.ExportLogAndMessages("Security", PathType.LogName, "*", @"c:\temp\security.evtx");
}
此代码在我使用“以管理员身份运行”运行进程时成功运行,但在未“以管理员身份运行但出现异常”时失败
System.UnauthorizedAccessException: "Attempted to perform an unauthorized operation."
使用类似的代码访问我的应用程序的事件日志
using (var els = new EventLogSession())
{
els.ExportLogAndMessages("MyAppLog", PathType.LogName, "*", @"c:\temp\myapplog.evtx");
}
我得到类似的结果,除了异常不同:
System.Diagnostics.Eventing.Reader.EventLogException: "The directory name is invalid"
我是不是做错了什么,或者是否有不同的方法可以让我在不需要管理员权限的情况下将事件日志导出到 .evtx 文件?
注意事项:
EvtArchiveExportedLog
中调用(并失败)。最佳答案
Question: Is it possible to export an event log in a process not "run as administrator"?
可以,但前提是您有权访问要导出的事件日志。
但是,您的问题似乎更像是
Why can't I export my application's event log using
EventLogSession
? AnEventLogException
is thrown with the message "The directory name is invalid".
查看 EventLogSession
的源代码你可以看到对 ExportLogAndMessages
的调用将调用 native 函数 EvtExportLog
.如果此函数失败,则通过调用 GetLastError
检索错误代码。这个 native Windows 错误代码是 mapped to one of several exceptions .
如果发生以下任何错误,将抛出您遇到的异常:
如果您指定了错误的事件日志名称,那么 ERROR_EVT_CHANNEL_NOT_FOUND 就是您遇到的错误。我猜这是你的问题。
但是,您可以自己调用 EvtExportLog
并检查 native 错误代码以更好地理解调用失败的原因:
[DllImport("kernel32.dll")]
static extern uint GetLastError();
[DllImport("wevtapi.dll", CharSet = CharSet.Unicode, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool EvtExportLog(IntPtr session, string channelPath, string query, string targetFilePath, int flags);
var success = EvtExportLog(IntPtr.Zero, "MyAppLog", "*", @"c:\temp\myapplog.evtx", 1);
if (!success)
{
var error = GetLastError();
Console.WriteLine(error);
}
native 错误代码应该清楚地指示潜在问题是什么。
关于c# - 不带 "run as administrator"的导出事件日志 (.evtx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41134054/
我正在尝试从事件查看器中导出信息。 我正在尝试用 EventLogSession 来做到这一点所以我可以使用 .evtx 格式,而不仅仅是文本文件。 public static void Export
我目前正在做一个需要读取 Windows 事件的项目。我正在使用 Win API 中的 OpenEventLog() 和 ReadEventLog()。我可以使用事件的类型名称从系统中读取事件。但我需
我有数百个 Evtx 安全事件日志,我想根据事件 ID 解析特定事件 ID (4624) 和用户名 (joe)。我尝试使用 Powershell cmdlet,如下所示: get-winevent -
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我的 Windows 服务需要将一个事件日志的内容保存到一个文件中。这是由 EventLogSession.ClearLog 完成的。但是,我不能强制它直接将事件日志保存到 CSV。保存格式为EVTX
问题是否可以在非“以管理员身份运行”的进程中导出事件日志? 我正在遵循 https://msdn.microsoft.com/en-us/library/bb671203(v=vs.90).aspx
我想知道是否有任何 java 库可以读取 evt/evtx 文件。 已经引用的链接 How to read .evtx extension file through java program Read
我是一名优秀的程序员,十分优秀!