是否可以创建一种简单的方法来备份事件日志,例如批处理文件或简单的应用程序?我需要让它在客户的网站上工作,其中的参考是非专家用户。谢谢
dancerjude
问问题
38881 次
4 回答
10
如果您使用的是 Windows 2008,请使用内置的 wevtutil 命令。例子:
wevtutil epl 应用程序 c:\temp\foo.evtx
否则,请从资源工具包中获取 dumpel.exe,或从http://technet.microsoft.com/en-us/sysinternals/bb897544.aspx获取 psloglist
于 2009-03-19T11:32:06.570 回答
4
使用 powershellexport-clixml
及其 oneliner。
get-eventlog -list | %{ get-eventlog $_.Log | export-clixml -path ($_.Log + ".xml") }
于 2010-10-13T10:27:17.097 回答
1
Microsoft 脚本中心有一些使用 VBScript 和 WMI备份和清除事件日志的示例代码。
Frank-Peter Schultze 的脚本站点有一些代码可以清除事件日志 ( http://www.fpschultze.de/uploads/clrevt.vbs.txt ),您可以将其修改为备份或备份然后清除。
如果您有权访问服务器,则可以通过右键单击日志并使用“将日志文件另存为...”命令从事件查看器进行备份。您可以保存到二进制、制表符分隔或逗号分隔的文件。
于 2009-03-24T10:06:51.530 回答
1
最后我用网上找到的这个方法做了一个小winapp:
public void DoBackup(string sLogName)
{
string sBackup = sLogName; // could be for example "Application"
EventLog log = new EventLog();
log.Source = sBackup;
var query = from EventLogEntry entry in log.Entries
orderby entry.TimeGenerated descending
select entry;
string sBackupName = sBackup+"Log";
var xml = new XDocument(
new XElement(sBackupName,
from EventLogEntry entry in log.Entries
orderby entry.TimeGenerated descending
select new XElement("Log",
new XElement("Message", entry.Message),
new XElement("TimeGenerated", entry.TimeGenerated),
new XElement("Source", entry.Source),
new XElement("EntryType", entry.EntryType.ToString())
)
)
);
DateTime oggi = DateTime.Now;
string sToday = DateTime.Now.ToString("yyyyMMdd_hhmmss");
string path = String.Format("{0}_{1}.xml", sBackupName, sToday);
xml.Save(Path.Combine(Environment.CurrentDirectory, path));
}
这是源链接:
它简直太棒了!
于 2009-03-25T14:32:27.203 回答