バッチファイルや簡単なアプリなどを使用して、イベントログをバックアップする簡単な方法を作成することは可能ですか? リファレンスが専門家ではないユーザーである顧客のサイトで動作させる必要があります。ありがとう
4 に答える
Windows 2008 を使用している場合は、組み込みの wevtutil コマンドを使用します。例:
wevtutil epl アプリケーション c:\temp\foo.evtx
それ以外の場合は、リソース キットから dumpel.exe を取得するか、http://technet.microsoft.com/en-us/sysinternals/bb897544.aspx から psloglist を取得します。
powershell とexport-clixml
その oneliner を使用します。
get-eventlog -list | %{ get-eventlog $_.Log | export-clixml -path ($_.Log + ".xml") }
Microsoft Script Center には、 VBScript と WMI を使用してイベント ログをバックアップおよびクリアするためのサンプル コードがいくつかあります。
Frank-Peter Schultze の Scripting Site には、イベント ログ ( http://www.fpschultze.de/uploads/clrevt.vbs.txt ) をクリアするためのコードがいくつかあります。これを変更してバックアップまたはバックアップしてからクリアすることができます。
サーバーにアクセスできる場合は、ログを右クリックし、[ログ ファイルに名前を付けて保存] コマンドを使用して、イベント ビューアからバックアップできます。バイナリ、タブ区切り、またはカンマ区切りのファイルに保存できます。
最後に、インターネットで見つけたこの方法を使用して、小さな 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));
}
これはソースリンクです:
それは単に素晴らしい作品です!