用 Perl 讀 Windows 的 EventLog

顯示結果從第 1 筆 到 2 筆,共計 2 筆
  1. #1
    會員
    註冊日期
    2001-05-18
    討論區文章
    1,939

    用 Perl 讀 Windows 的 EventLog

    #! c:\perl\bin\perl.exe -w
    use Win32::EventLog;
    %type =(1 => 'ERROR',
    2 => 'WARNING',
    4 => 'INFORMATION',
    8 => 'AUDIT_SUCCESS',
    16=> 'AUDIT_FAILURE');
    open(EVENTLOG,">EVENTLOG.TXT");
    $log = new Win32::EventLog("System") or die "Unable to open system log:$^E\n";
    while ($log->Read((EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ), 1,$entry)) {
    Win32::EventLog::GetMessageText($entry);
    print EVENTLOG scalar localtime($entry->{TimeGenerated})." ";
    print EVENTLOG $entry->{Computer}."[".($entry->{EventID} & 0xffff)."] ";
    print EVENTLOG $entry->{Source}.":".$type{$entry->{EventType}};
    print EVENTLOG $entry->{Message};
    }
    $log->Clear(FILENAME);
    close(EVENTLOG);
    __END__

    C:\Documents and Settings\BX2AA\perl>perl eventlog.pl
    以下擷取 EVENTLOG.TXT 檔中的一些訊息
    Sun Mar 14 20:31:04 2004 AMATEUR-RADIO[1001] SNMP:INFORMATIONSNMP 服務已經順利啟動。

    Sun Mar 14 20:31:55 2004 AMATEUR-RADIO[7036] Service Control Manager:INFORMATIONSSDP Discovery Service 服務已進入 執行中 狀態。

    Sun Mar 14 20:31:55 2004 AMATEUR-RADIO[7036] Service Control Manager:INFORMATIONNetwork Location Awareness (NLA) 服務已進入 執行中 狀態。

    Sun Mar 14 21:25:46 2004 AMATEUR-RADIO[7036] Service Control Manager:INFORMATIONIMAPI CD-Burning COM Service 服務已進入 停止 狀態。

    Sun Mar 14 21:33:24 2004 AMATEUR-RADIO[7035] Service Control Manager:INFORMATIONIMAPI CD-Burning COM Service 服務已成功地傳送一個 開始 控制。

    Sun Mar 14 21:47:58 2004 AMATEUR-RADIO[6009] EventLog:INFORMATIONMicrosoft (R) Windows (R) 5.01. 2600 Uniprocessor Free.

    Mon Mar 15 13:45:46 2004 AMATEUR-RADIO[7035] Service Control Manager:INFORMATIONTerminal Services 服務已成功地傳送一個 開始 控制。

    Mon Mar 15 13:45:46 2004 AMATEUR-RADIO[7036] Service Control Manager:INFORMATIONFast User Switching Compatibility 服務已進入 執行中 狀態。

    Mon Mar 15 13:45:46 2004 AMATEUR-RADIO[7036] Service Control Manager:INFORMATIONIMAPI CD-Burning COM Service 服務已進入 停止 狀態。

    Mon Mar 15 14:05:10 2004 AMATEUR-RADIO[7035] Service Control Manager:INFORMATIONCLPCIID 服務已成功地傳送一個 開始 控制。

    Mon Mar 15 14:09:57 2004 AMATEUR-RADIO[7036] Service Control Manager:INFORMATIONIMAPI CD-Burning COM Service 服務已進入 停止 狀態。

    Mon Mar 15 18:51:07 2004 AMATEUR-RADIO[6009] EventLog:INFORMATIONMicrosoft (R) Windows (R) 5.01. 2600 Uniprocessor Free.

    Mon Mar 15 18:52:41 2004 AMATEUR-RADIO[7036] Service Control Manager:INFORMATIONIMAPI CD-Burning COM Service 服務已進入 執行中 狀態。

    Mon Mar 15 18:52:41 2004 AMATEUR-RADIO[7035] Service Control Manager:INFORMATIONNetwork Location Awareness (NLA) 服務已成功地傳送一個 開始 控制。

    Mon Mar 15 18:52:41 2004 AMATEUR-RADIO[7036] Service Control Manager:INFORMATIONRemote Access Auto Connection Manager 服務已進入 執行中 狀態。

    Mon Mar 15 20:17:43 2004 AMATEUR-RADIO[7035] Service Control Manager:INFORMATIONIMAPI CD-Burning COM Service 服務已成功地傳送一個 開始 控制。

    Mon Mar 15 20:17:43 2004 AMATEUR-RADIO[7036] Service Control Manager:INFORMATIONFast User Switching Compatibility 服務已進入 執行中 狀態。

    Mon Mar 15 20:17:43 2004 AMATEUR-RADIO[7036] Service Control Manager:INFORMATIONRemote Access Connection Manager 服務已進入 執行中 狀態。

    Tue Mar 16 11:05:54 2004 AMATEUR-RADIO[7035] Service Control Manager:INFORMATIONNetwork Connections 服務已成功地傳送一個 開始 控制。

    Tue Mar 16 11:05:54 2004 AMATEUR-RADIO[7035] Service Control Manager:INFORMATIONNetwork Location Awareness (NLA) 服務已成功地傳送一個 開始 控制。

    Tue Mar 16 11:05:54 2004 AMATEUR-RADIO[7035] Service Control Manager:INFORMATIONRemote Access Auto Connection Manager 服務已成功地傳送一個 開始 控制。

    Tue Mar 16 19:04:14 2004 AMATEUR-RADIO[7035] Service Control Manager:INFORMATIONNetwork Connections 服務已成功地傳送一個 開始 控制。

    Tue Mar 16 19:04:14 2004 AMATEUR-RADIO[7036] Service Control Manager:INFORMATIONIMAPI CD-Burning COM Service 服務已進入 執行中 狀態。

    Tue Mar 16 19:04:14 2004 AMATEUR-RADIO[7035] Service Control Manager:INFORMATIONRemote Access Auto Connection Manager 服務已成功地傳送一個 開始 控制。

    Tue Mar 16 23:06:08 2004 AMATEUR-RADIO[7035] Service Control Manager:INFORMATIONFast User Switching Compatibility 服務已成功地傳送一個 開始 控制。

    Tue Mar 16 23:06:08 2004 AMATEUR-RADIO[7036] Service Control Manager:INFORMATIONIMAPI CD-Burning COM Service 服務已進入 執行中 狀態。

    Tue Mar 16 23:06:08 2004 AMATEUR-RADIO[7035] Service Control Manager:INFORMATIONRemote Access Auto Connection Manager 服務已成功地傳送一個 開始 控制。



  2. #2
    會員
    註冊日期
    2001-05-18
    討論區文章
    1,939

    用 Perl 統計 Windows eventlog

    #! c:\perl\bin\perl.exe -w
    use Win32::EventLog;

    my %event=('Length',NULL,
    'RecordNumber',NULL,
    'TimeGenerated',NULL,
    'TimeWritten',NULL,
    'EventID',NULL,
    'EventType',NULL,
    'Category',NULL,
    'ClosingRecordNumber',NULL,
    'Source',NULL,
    'Computer',NULL,
    'Strings',NULL,
    'Data',NULL,);

    # partial list of event types, i.e., Type 1 is "Error",
    # 2 is "Warning", etc.
    @types = ("","Error","Warning","","Information");

    Win32::EventLog::Open($EventLog,'System','') or die "Could not open System log:$^E\n";

    $EventLog->Win32::EventLog::GetNumber($numevents);
    $EventLog->Win32::EventLog::GetOldest($oldestevent);

    $EventLog->Win32::EventLog::Read((EVENTLOG_SEEK_READ |
    EVENTLOG_FORWARDS_READ),
    $numevents + $oldestevent, $event);

    # loop through all of the events, recording the number of
    # Source and EventTypes
    for ($i=0;$i<$numevents;$i++) {
    $EventLog->Read((EVENTLOG_SEQUENTIAL_READ |
    EVENTLOG_FORWARDS_READ),
    0, $event);
    $source{$event->{Source}}++;
    $types{$event->{EventType}}++;
    }

    # now print out the totals
    print "-->Event Log Source Totals:\n";
    for (sort keys %source) {
    print "$_: $source{$_}\n";
    }
    print "-"x30,"\n";
    print "-->Event Log Type Totals:\n";
    for (sort keys %types) {
    print "$types[$_]: $types{$_}\n";
    }
    print "-"x30,"\n";
    print "Total number of events: $numevents\n";

    __END__


    C:\Documents and Settings\BX2AA\perl>perl event.pl
    -->Event Log Source Totals:
    Application Popup: 10
    BROWSER: 2
    EventLog: 152
    LPDSVC: 1
    SNMP: 40
    SRService: 2
    Save Dump: 1
    Service Control Manager: 1132
    System Error: 1
    USER32: 15
    W32Time: 482
    Windows File Protection: 1
    atapi: 2
    sr: 1
    ------------------------------
    -->Event Log Type Totals:
    Error: 484
    Warning: 17
    Information: 1341
    ------------------------------
    Total number of events: 1842

    C:\Documents and Settings\BX2AA\perl>

類似的主題

  1. 【求助】EventLog ID:51
    作者:boom 所在討論版:-- HELP ME 電 腦 軟 硬 體 急 救 版
    回覆: 0
    最後發表: 2004-12-27, 10:54 AM
  2. EventLog底下的Directory Service問題
    作者:keno 所在討論版:-- Windows 討 論 版
    回覆: 1
    最後發表: 2002-10-11, 11:14 AM
  3. php、mysql、apache、perl、phpmyadmin 一次安裝版 For Windows
    作者:阿 土 所在討論版:☉ -- 架 站 DIY 討 論 版
    回覆: 24
    最後發表: 2002-06-30, 09:42 PM
  4. win98+Apache+perl......??
    作者:clw120 所在討論版:-- 網 路 技 術 版
    回覆: 0
    最後發表: 2002-01-18, 03:22 PM

 

此網頁沒有從搜尋引擎而來的訪客

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •