Lệnh Get-EventLog PowerShell: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao Cho Quản Trị Hệ Thống

lệnh get-eventlog powershell

Khi làm việc với hệ thống Windows, việc kiểm tra và phân tích nhật ký sự kiện (Event Log) là một kỹ năng không thể thiếu đối với quản trị viên. Lệnh Get-EventLog PowerShell cung cấp một cách tiếp cận mạnh mẽ và linh hoạt để truy xuất dữ liệu từ các bản ghi sự kiện một cách nhanh chóng. Thay vì phải mở từng cửa sổ Event Viewer và lọc thủ công, Khi bạn làm việc với các hệ thống Windows cũ (Windows 7/2008 trở về trước) hoặc cần truy vấn nhanh với cú pháp đơn giản. Nếu bạn dùng Windows 10/2016 trở lên và có khối lượng nhật ký lớn, Get-WinEvent là lựa chọn tối ưu hơn.

Ví Dụ Thực Tế Sử Dụng Get-EventLog PowerShell

lệnh get-eventlog powershell - Hình 5

1. Lấy 100 sự kiện lỗi gần nhất từ nhật ký System

Get-EventLog -LogName System -EntryType Error -Newest 100 | Format-Table -AutoSize

Xem thêm:  Hướng dẫn Accounts Settings Windows 11: Tùy chỉnh tài khoản từ A đến Z cho người mới bắt đầu

Lệnh này hiển thị 100 lỗi gần đây nhất dưới dạng bảng dễ đọc. Hữu ích khi bạn nghi ngờ một dịch vụ nào đó gặp sự cố.

2. Tìm kiếm sự kiện theo mã ID cụ thể

Get-EventLog -LogName Security -InstanceId 4625

InstanceId 4625 tương ứng với sự kiện đăng nhập thất bại. Dùng lệnh này để phát hiện các nỗ lực brute force.

3. Lọc sự kiện trong 7 ngày qua

$cutOffDate = (Get-Date).AddDays(-7)
Get-EventLog -LogName Application -After $cutOffDate -EntryType Error

Kỹ thuật này thường được dùng trong script kiểm tra sức khỏe hàng tuần.

4. Truy vấn từ xa trên nhiều máy chủ

$servers = @(“ServerA”, “ServerB”, “ServerC”)
$servers | ForEach-Object { Get-EventLog -LogName Security -EntryType FailureAudit -ComputerName $_ -Newest 20 }

Lệnh này lấy 20 sự kiện FailureAudit gần nhất từ nhật ký Security trên ba máy chủ. Rất hiệu quả trong việc giám sát bảo mật tập trung.

5. Xuất kết quả ra file CSV

Get-EventLog -LogName System -Newest 500 | Export-Csv -Path “C:ReportsSystemLog.csv” -NoTypeInformation

Dùng lệnh Get-EventLog -List. Lệnh này hiển thị tất cả các nhật ký với tên gọi, số lượng mục, kích thước, và ngày ghi cuối cùng.

Get-EventLog có hỗ trợ Windows 11 không?

Có, nhưng chỉ đọc được các nhật ký cũ. Trên Windows 11, hầu hết nhật ký mới đều ở định dạng.evtx, vì vậy nên dùng Get-WinEvent thay thế để có kết quả chính xác và nhanh hơn.

Tại sao lệnh Get-EventLog -LogName Security không trả về kết quả?

Có thể do thiếu quyền Administrator. Hãy chạy PowerShell với tư cách Administrator. Ngoài ra, nhật ký Security có thể bị disable hoặc không có sự kiện nào.

Xem thêm:  Cách tối ưu trải nghiệm âm thanh: Bí quyết nâng tầm chất lượng nghe nhìn từ chuyên gia

Có thể dùng Get-EventLog để xóa nhật ký không?

Không. Get-EventLog chỉ đọc dữ liệu. Để xóa nhật ký, bạn cần dùng Clear-EventLog hoặc xóa thủ công qua Event Viewer.

Làm sao để xuất kết quả ra file txt hoặc csv?

Dùng pipeline với Export-Csv hoặc Out-File. Ví dụ: Get-EventLog -LogName Application -Newest 1000 | Export-Csv “C:log.csv” -NoTypeInformation

Sự khác biệt giữa -Before, -After và -Newest là gì?

-Before và -After lọc theo thời gian, trả về tất cả sự kiện trong khoảng đó (có thể rất nhiều). -Newest chỉ lấy N sự kiện mới nhất, không liên quan đến thời gian cụ thể.

Kết Luận

lệnh get-eventlog powershell - Hình 4

Lệnh Get-EventLog PowerShell là một công cụ hữu ích cho quản trị viên hệ thống, đặc biệt trong các môi trường Windows cũ hoặc khi cần truy vấn nhanh với cú pháp đơn giản. Tuy nhiên, do đã bị Microsoft đánh dấu deprecated, bạn nên cân nhắc học thêm Get-WinEvent để chuẩn bị cho tương lai. Dù vậy, hàng trăm nghìn script quản trị hiện tại vẫn dựa vào Get-EventLog, và hiểu rõ cmdlet này giúp bạn bảo trì và nâng cấp chúng một cách hiệu quả. Hãy luôn kết hợp các tham số lọc để tối ưu hiệu suất, và đừng quên kiểm tra quyền truy cập trước khi chạy lệnh trên các nhật ký nhạy cảm như Security.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *