Tìm kiếm trang web

Giám sát nhật ký sự kiện bằng PowerShell


Một nhiệm vụ quản trị hệ thống thông thường mà PowerShell tự thực hiện là phân tích dữ liệu và tệp văn bản, đồng thời nhật ký sự kiện Windows sử dụng thông tin có định dạng XML có thể dễ dàng phân tích cú pháp bằng cách sử dụng Get-EventLog và Get-WinEvent Lệnh ghép ngắn PowerShell. Trong bài viết này, tôi sẽ hướng dẫn bạn cách bắt đầu sử dụng PowerShell để phân tích nhật ký sự kiện và giải thích sự khác biệt giữa hai lệnh ghép ngắn để giúp bạn theo dõi nhật ký sự kiện dễ dàng hơn.

Get-EventLog so với Get-WinEvent

Get-EventLog là lệnh ghép ngắn PowerShell đầu tiên được Microsoft đưa vào Windows để hỗ trợ làm việc với nhật ký sự kiện. Kể từ PowerShell v2.0, tham số -ComputerName đã được thêm để có thể sử dụng tham số này để truy vấn nhật ký trên các máy tính từ xa. Tuy nhiên, Get-EventLog có một số hạn chế dẫn đến việc giới thiệu Get-WinEvent trong PowerShell phiên bản 2. Get-EventLog chỉ hoạt động trên Hệ thống , Nhật ký ứng dụng và bảo mật chứ không phải nhật ký ETL mới (Nhật ký theo dõi sự kiện) đã được giới thiệu với Theo dõi sự kiện cho Windows (ETW) trong Windows 7, chứa thông tin từ nhiều nguồn khác nhau hơn các nhật ký truyền thống đã có từ thời Windows NT.

Lệnh ghép ngắn Get-EventLog không cho phép lọc trực tiếp các kết quả trả về, điều đó có nghĩa là tập dữ liệu phải được phân tích cú pháp bằng cách chuyển các kết quả tới lệnh ghép ngắn Where-Object cho xử lý tiếp. Đây có thể không phải là vấn đề quá lớn nếu bạn chỉ muốn làm việc với nhật ký trên máy cục bộ, nhưng có thể trở thành vấn đề khi truy vấn máy tính từ xa, vì nhật ký cần được chuyển qua mạng trước khi chúng có thể được phân tích cú pháp. mất thêm thời gian và tạo ra lưu lượng truy cập mạng không cần thiết nếu nhật ký khá lớn.

Do đó, nếu bạn thực sự muốn trả về toàn bộ nội dung của nhật ký và không cần phải làm việc với nó thêm nữa, sử dụng Get-EventLog là một tùy chọn, nhưng Get-WinEvent được phát triển để giải quyết những thiếu sót của Get-EventLog, có khả năng trả về toàn bộ nhật ký và về sau có thể là lệnh ghép ngắn mà Microsoft sẽ hỗ trợ để làm việc với nhật ký sự kiện.

Thông tin cơ bản về nhật ký sự kiện PowerShell

Hãy bắt đầu bằng cách trả về toàn bộ nội dung của nhật ký sự kiện bằng cách sử dụng Get-WinEvent. Mở lời nhắc PowerShell, nhập dòng lệnh bên dưới và nhấn ENTER.

Get-WinEvent -Ứng dụng LogName

Thao tác này sẽ xuất toàn bộ nội dung của nhật ký Ứng dụng tới CLI. Trong thực tế, có thể bạn sẽ chỉ muốn xem các sự kiện gần đây nhất và cách dễ nhất để làm điều đó là thêm tham số -MaxEvents:

Get-WinEvent -Ứng dụng LogName -MaxEvents 10

Dòng lệnh trên hiển thị mười sự kiện cuối cùng được ghi trong nhật ký Ứng dụng. Get-WinEvent có thể được sử dụng để phân tích nhật ký ETL, nhưng trước tiên bạn cần tìm tên nhật ký. Để liệt kê tất cả các nhật ký có sẵn, hãy sử dụng:

Get-WinEvent -ListLog *

Sau đó tìm tên nhật ký mong muốn, ví dụ: nhật ký Quản lý BitLocker có thể được trả về bằng lệnh bên dưới. Lưu ý rằng bắt buộc phải có dấu nháy đơn ở đầu và cuối tên nhật ký vì nó bao gồm khoảng trắng:

Get-WinEvent -LogName ‘Microsoft-Windows-BitLocker/BitLocker Management’ -MaxEvents 10

Bạn cũng có thể nhận thông tin chi tiết về một nhật ký cụ thể như được hiển thị ở đây bằng cách thêm lệnh ghép ngắn Format-List:

Get-WinEvent -ListLog 'Quản lý Microsoft-Windows-BitLocker/BitLocker' | Danh sách định dạng -Thuộc tính *

Nếu bạn muốn thực hiện bất kỳ tác vụ nào ở trên trên máy tính từ xa, chỉ cần thêm tham số -ComputerName, theo sau là tên máy tính:

Get-WinEvent -ListLog ‘Microsoft-Windows-BitLocker/BitLocker Management’ -ComputerName contososrv1 | Danh sách định dạng -Thuộc tính *

Đừng quên rằng bạn phải có các quyền cần thiết để đọc nhật ký mong muốn, cho dù đó là trên máy tính cục bộ hay thiết bị từ xa.

Và đây là lúc bạn có thể kiểm tra trí nhớ của mình: hãy nhớ chọn câu trả lời đúng!

Bài viết liên quan