Sử dụng PowerShell để tạo EventLog
Cú pháp cơ bản của lệnh này có dạng:Lưu ý rằng khi sử dụng cmdlet này, các bạn phải khai báo tên file log, source, event id và message tương ứng. Rất giống với công cụ command EVENTCREATE.EXE, nhưng người dùng lại không thể sử dụng các nguồn không theo chuẩn hoặc tương tự như vậy. Mà thay vào đó họ phải khởi tạo những thông số kỹ thuật hoặc nguồn dữ liệu trước tiên. Và 1 trong những cách đơn giản nhất để tìm nguồn dữ liệu là dùng Windows Management Instrumentation (WMI).
PS C:\> $log.Sources
System
ACPI
adp94xx
adpahci
adpu320
...
Nếu 1 trong những nguồn trên có vẻ phù hợp thì các bạn hãy ghi lại thành bản ghi như sau:
Dạng entry mặc định là Information, người dùng có thể tạo riêng eventID và thay đổi, chỉnh sửa bất kỳ lúc nào:
EventID : 12345
EntryType : Information
Source : Server
Message : The description for Event ID '12345' in Source 'Server' cannot be
found. The local computer may not have the necessary registry
information or message DLL files to display the message, or you
may not have permission to access them. The following inform
ation is part of the event:'I am a custom event log message'
Giả sử rằng nếu muốn tìm kiếm event ID hoặc message bất kỳ nào đó, chắc hẳn sẽ nhận được lỗi nho nhỏ như dưới đây:
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
1512222 Jan 25 10:05 Information Server 12345 The des...
Không thực sự hoàn hảo, nhưng vẫn hoạt động đúng chức năng. Trong khi nếu xét về mặt lý thuyết thì chúng ta có thể đăng ký bằng các nguồn dữ liệu mới, và cũng có thể tạo được bản ghi mới bằng cách dùng cmdlet lệnh New-Eventlog. Thông thường thì lệnh cmdlet này được áp dụng để những nhà phát triển, lập trình xây dựng 1 mô hình event log cố định. Ví dụ dưới đây, chúng ta sẽ tạo 1 bản ghi log theo dạng custom, đồng thời khởi tạo 1 số nguồn dữ liệu khác nhau.
Kiểm tra lại những gì đã được tạo:
PS C:\> $log | fl
FileSize : 69632
LogfileName : PSLogging
Name : C:\Windows\System32\Winevt\Logs\PSLogging.evtx
NumberOfRecords : 0
Đó là 1 file log hoàn toàn mới, tiếp theo là việc kiểm tra nguồn dữ liệu - source:
PSLogging
ADSI
Other
Test
WMI
Và cuối cùng, nhập ít dữ liệu bất kỳ vào đây:
Bên cạnh đó, chúng ta có thể sử dụng bất kỳ event ID nào, hoặc tự khởi tạo chúng theo ý muốn:
Index : 14
EntryType : Information
InstanceId : 1000
Message : I am the first entry
Category : (1)
CategoryNumber : 1
ReplacementStrings : {I am the first entry}
Source : Test
TimeGenerated : 1/25/2012 10:45:47 AM
TimeWritten : 1/25/2012 10:45:47 AM
UserName :
Tại bước này, Windows sẽ không "quan tâm" tới event ID nữa. Nếu muốn gán thêm bất kỳ nguồn dữ liệu nào khác, các bạn chỉ cần sử dụng lại lệnh cmdlet New-Eventlog:
Và nguồn mới của chúng ta tại đây:
PSLogging
ADSI
Other
Scripting
Test
WMI
Lệnh cmdlet New-Eventlog có tham số -computername đi kèm, do vậy sẽ dễ dàng hơn rất nhiều để khởi tạo 1 eventlog mới bất kỳ trên toàn bộ Desktop hoặc server - nơi chúng ta muốn giám sát, quản lý log. Chúc các bạn thành công!
T.Anh (Petri) |