前言
前回說明的文章 ”將CSV檔案更新至Excel檔案”內所提的csv2excel2.vbs程式,今回新設計自動執行檔,自動篩選Windows事件紀錄,並結合vbscript,產出Excel報表,方便管理人員統計與分析電腦事件
1. 處理目的:
可以自動篩選出電腦特定事件(Windows event)內容,將其存入EXCEL檔案,讓管理人員易以統計特定事件發生件數與頻度等管理項目,進而監視系統環境,防範系統故障,穩定電腦運作。
2. 作業說明:
作業處理的主要目的是 將選取事件的2個csv 檔案,轉存入 2個exce檔案
2.1 利用FullEventLogView.exe程式,篩選特定Event id事件紀錄檔後,出力csv file
2.2 上述執行後,若有事件出力,將新出力的csv檔更新至excel檔
2.3 利用FullEventLogView.exe程式,篩選事件層級(Event Level)為嚴重 critical,或是錯誤 error之事件紀錄檔後,出力csv file
2.4 上述執行後,若有事件出力,將新出的csv檔更新至excel檔
3. Bat 設計說明:
3.1 利用FullEventLogView.exe,選取最近31日內重要的特定 event id 並出力 為csv file,命名為EventIDView_%Today%.csv
3.2 先判斷是否有篩選出特定事件,若有則執行WScript csv2excel2.vbs,將csv內選取事件之資訊存入EXCEL,命名為EventID_select_output.xlsx
3.3 利用FullEventLogView.exe,選取最近31日內event Level 為 error or critical 之事件,並出力 為csv file,命名為EventLevelView_%Today%.csv
3.4 先判斷是否有篩選出特定事件,若有則執行WScript csv2excel2.vbs,將csv內選取事件之資訊存入EXCEL,命名為EventLevel_select_output.xlsx
4.1 執行時間 2025/1/25 上午11:19 ,如下圖
1/25 只有產出 EventLevel_select_output.xlsx 檔,EventID 沒有篩選出事件
4.2執行時間 2025/1/26 下午02:16 ,如下圖
1/26 只有產出 EventLevel_select_output.xlsx 檔,EventID 沒有篩選出事件
rem --- Job must run as administrator -----
REM *** select events by 2 conditions output 2 csv, and then transform 2 excel file ***
SET /a csvF=0
SET /a Today = %date:~0,4%%date:~5,2%%date:~8,2%
set csvPath1=D:\EventLog_Out
set exePath2=D:\lin_PC\cmd-bat\cmd\Manipulate_file\EventLog
D:
cd %exePath2%
REM STEP 1.1--- select event id and then output csv file
:: select from evtlog (C:\ ) to output csv file by tool FullEventLogView.exe ------
%exePath2%\FullEventLogView.exe /scomma "%csvPath1%\EventIDView_%Today%.csv" /EventIDFilter 2 /EventIDFilterStr "4624,4625,4720,4723,4663,4656,4662,4672,5140,4657" /TimeFilter 1 /LastTimeFilterUnit 4 /LastTimeFilterValue 31 /SaveDirect
REM STEP 1.2--- csv file transform into excel file
set csvP="%csvPath1%\EventIDView_%Today%.csv"
set xlsxP="%csvPath1%\EventID_select_output.xlsx"
find /I /C "/" "%csvPath1%\EventIDView_%Today%.csv"
::若errorlevel是 0 表示找到日期 2025/1/25 之/ ,即表示有找到事件
If %errorlevel% == 0 (
set /a csvF=csvF + 1
WScript D:\lin_PC\EXCEL\VBS\csv2excel\csv2excel2.vbs %csvP% %xlsxP% G )
pause ---1 to check output eventID of csv and xlsx------------F=%csvF%------
REM STEP 2.1--- select event Level and then output csv file
:: --- select event Level of error or critical
%exePath2%\FullEventLogView.exe /scomma "%csvPath1%\EventLevelView_%Today%.csv" /ChannelFilter 2 /ChannelFilterStr "Security,Application,System,Setup" /ShowCritical 1 /ShowError 1 /ShowWarning 0 /ShowInformation 0 /ShowUndefined 0 /ShowVerbose 0 /TimeFilter 1 /LastTimeFilterUnit 4 /LastTimeFilterValue 31 /SaveDirect
REM STEP 2.2--- csv file transform into excel file
set csvP="%csvPath1%\EventLevelView_%Today%.csv"
set xlsxP="%csvPath1%\EventLevel_select_output.xlsx"
find /I /C "/" "%csvPath1%\EventLevelView_%Today%.csv"
::若errorlevel是 0 表示找到日期 2025/1/25 之/ ,即表示有找到事件
If %errorlevel% == 0 (
set /a csvF=csvF + 1
WScript D:\lin_PC\EXCEL\VBS\csv2excel\csv2excel2.vbs %csvP% %xlsxP% G )
pause ---2 to check output Level error critical of csv and xlsx----F=%csvF%-----
rem pause --- job finished
EXIT
6. 擴充應用
6.1 除了電腦事件的csv檔的應用,其他各用途的csv 或txt檔案資料,亦可用來更新excel檔案內容
6.2 excel更新取得後,可設計巨集公式,來處理各項資料的計算與統計,以方便作趨勢分析
6.3 利用Windows 工作排程(task scheduler),讓bat按照排程自動執行,以提高工作效率與防止事故擴大
---by linct-----