Batch file 在Windows Server上备份事件日志的简单方法
是否可以创建一种简单的方法来备份事件日志,例如使用批处理文件或简单的应用程序? 我需要让它在一个客户的网站上工作,那里的参考是一个非专家用户。Batch file 在Windows Server上备份事件日志的简单方法,batch-file,backup,event-log,Batch File,Backup,Event Log,是否可以创建一种简单的方法来备份事件日志,例如使用批处理文件或简单的应用程序? 我需要让它在一个客户的网站上工作,那里的参考是一个非专家用户。 谢谢如果您使用的是Windows 2008,请使用内置的wevtutil命令。例如: wevtutil epl应用程序c:\temp\foo.evtx 否则,请从资源工具包获取dumpel.exe,或从Microsoft脚本中心获取psloglist。Microsoft脚本中心提供了一些使用VBScript和WMI的示例代码 Frank Peter Sc
谢谢如果您使用的是Windows 2008,请使用内置的wevtutil命令。例如: wevtutil epl应用程序c:\temp\foo.evtx
否则,请从资源工具包获取dumpel.exe,或从Microsoft脚本中心获取psloglist。Microsoft脚本中心提供了一些使用VBScript和WMI的示例代码 Frank Peter Schultze的脚本站点有一些代码来清除事件日志(),您可以修改它以进行备份或备份,然后清除
如果您有权访问服务器,则可以通过右键单击日志并使用“将日志文件另存为…”命令从事件查看器进行备份。您可以保存为二进制、制表符分隔或逗号分隔的文件。最后,我使用internet上的以下方法制作了一个小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));
}
这是来源:
它只是工作得很好 使用powershell和导出clixml的oneliner
get-eventlog -list | %{ get-eventlog $_.Log | export-clixml -path ($_.Log + ".xml") }