为创建时间创建自定义 XPath
Create Custom XPath for Time Created
我正在尝试读取在指定时间后生成的事件日志,但它给出了无效的查询字符串异常。
我已遵循 msdn site 如何提供 xpath,下面是我的 implementation.What 我的代码有误。
var Date = "6/13/2017 3:51:10 PM";
string queryString = "*[System/TimeCreated/@SystemTime >=" + Date + "]]";
SecureString pw = GetPassword();
EventLogSession session = new EventLogSession(
"MachineName", // Remote Computer
"DomainName", // Domain
"userName", // Username
pw,
SessionAuthentication.Default);
pw.Dispose();
EventLogQuery query = new EventLogQuery("Application", PathType.LogName, queryString);
query.Session = session;
try
{
EventLogReader logReader = new EventLogReader(query);
for (EventRecord eventDetail = logReader.ReadEvent(); eventDetail != null; eventDetail = logReader.ReadEvent())
{
var date = eventDetail.TimeCreated;
}
// Display event info
}
catch (EventLogException e)
{
Console.WriteLine("Could not query the remote computer! " + e.Message);
return;
}
在 XPath 中,您必须做两件事。首先,您必须引用日期值,因为它是一个字符串。其次,你必须使用 ISO 格式,因为这是它的格式。
var Date = "2017-06-13T15:51:10Z";
string queryString = "*[System/TimeCreated[@SystemTime >='" + Date + "']]";
我正在尝试读取在指定时间后生成的事件日志,但它给出了无效的查询字符串异常。
我已遵循 msdn site 如何提供 xpath,下面是我的 implementation.What 我的代码有误。
var Date = "6/13/2017 3:51:10 PM";
string queryString = "*[System/TimeCreated/@SystemTime >=" + Date + "]]";
SecureString pw = GetPassword();
EventLogSession session = new EventLogSession(
"MachineName", // Remote Computer
"DomainName", // Domain
"userName", // Username
pw,
SessionAuthentication.Default);
pw.Dispose();
EventLogQuery query = new EventLogQuery("Application", PathType.LogName, queryString);
query.Session = session;
try
{
EventLogReader logReader = new EventLogReader(query);
for (EventRecord eventDetail = logReader.ReadEvent(); eventDetail != null; eventDetail = logReader.ReadEvent())
{
var date = eventDetail.TimeCreated;
}
// Display event info
}
catch (EventLogException e)
{
Console.WriteLine("Could not query the remote computer! " + e.Message);
return;
}
在 XPath 中,您必须做两件事。首先,您必须引用日期值,因为它是一个字符串。其次,你必须使用 ISO 格式,因为这是它的格式。
var Date = "2017-06-13T15:51:10Z";
string queryString = "*[System/TimeCreated[@SystemTime >='" + Date + "']]";