10 thủ thuật với PowerShell trong Windows Server 2008 – Phần 2 Thu thập thông tin của 10 lỗi gần nhất: Hàng ngày, có thể bạn sẽ phải duyệt từng file log trong hệ thống để tìm thông tin
Trang 110 thủ thuật với PowerShell trong Windows Server 2008 –
Phần 2 Thu thập thông tin của 10 lỗi gần nhất:
Hàng ngày, có thể bạn sẽ phải duyệt từng file log trong hệ thống để tìm thông tin chi tiết những sự kiện lỗi phát sinh gần đây nhất trên 1 hoặc nhiều nhiều máy tính Tuy nhiên, chúng ta hoàn toàn có thể đơn giản hóa quá trình này bằng cách sử
dụng lệnh cmdlet Get-EventLog trong PowerShell
Tất cả những gì các bạn cần làm ở đây là xác định rõ tên của file log và thành phần tương ứng Cấu trúc lệnh thông thường sẽ có dạng như sau:
Trong ảnh chụp màn hình trên thì tên của file log là system, thành phần tham gia
là Error Và như vậy,PowerShell sẽ thu thập toàn bộ thông tin có liên quan tới 10
lỗi xảy ra gần đây nhất từ log của hệ thống Lệnh này được thực hiện trên bất kỳ máy tính local nào, do vậy các bạn sẽ không cần phải chỉ định rõ tên máy tính Lưu ý rằng nếu câu lệnh trên không hiển thị kết quả theo đúng yêu cầu, chúng ta
có thể chỉnh sửa lại một chút thông tin theo cú pháp dưới đây:
Chúng ta đơn giản hóa quá trình bằng cách chuyển thông tin output của câu lệnh
trước đó thành ft, với alias làFormat-Table, và yêu cầu hiển thị các thuộc tính sau: Timewritten, Source, EventID, và Message Đồng thời, chúng tôi thêm
-wrap và -auto để kết quả “dễ nhìn” hơn Cụ thể, wrap kích hoạt chế độ -wrap đối
với thông tin dạng text, và -auto là tính năng tự động thay đổi kích thước
Và kết quả của chúng ta sẽ như sau:
Trang 2Tiếp theo, chúng ta sẽ tạo 1 câu lệnh khác, và lần này yêu cầu đặt ra là sắp xếp
thuộc tính theo trường Source, sau đó gộp chúng lại Kết quả cuối cùng sẽ được gán thêm tùy chọn more để hiển thị theo từng kích thước màn hình riêng, người
dùng sẽ không phải kéo chuột xuống dưới để xem tất cả:
Bây giờ là thời điểm cần phải gộp các thành phần theo source Nhóm thông tin đầu tiên đều có EventLog tương tự là source, còn nhóm thứ 2 là
Microsoft-Windows-GroupPolicy Các bạn cần để ý rằng More xuất hiện ở phía cuối
màn hình, có nhiệm vụ thông báo với người sử dụng nhấn 1 phím bất kỳ để xem thêm thông tin
Tất cả các câu lệnh Get-EventLog đều được thực hiện trên máy tính local, còn nếu muốn thực hiện trên máy tính remote thì sao?
Ví dụ, chúng ta muốn xem kết quả báo cáo về tình trạng lỗi 5 mới nhất xảy ra trên
một số máy tính thuộc hệ thốngdomain controller tại chi nhánh ở Chicago Các máy tính có tên lần lượt là chi-dc01 và chi-dc02, giả sử rằng người quản trị muốn sắp xếp kết quả theo Machine Name Để thực hiện, chúng ta sẽ cho hiển thị những thuộc tính như sau: Timewritten, Source, EventID, và Message Một lần nữa, các bạn nên sử dụng tham số -wrap, -auto, và more tại đây:
Và đây là kết quả:
7 Reset quyền điều khiển trên thư mục:
Trên thực tế, có khá nhiều trường hợp mức phân quyền NTFS của 1 thư mục
không được thiết lập đúng cách Và để khắc phục thì chúng ta chỉ cần reset lại
quyền điều khiển tương ứng với cú pháp lệnh cmdlet Set-Acl
(Set-ACL) trên PowerShell
Trang 3Cách thực hiện đơn giản nhất tại đây có lẽ là sử dụng Get-Acl để thu thập thông
tin ACL từ 1 thư mục hoàn toàn bình thường, sau đó gán vào thư mục đang gặp
vấn đề Giả sử rằng chúng ta có những file chia sẻ có tên làsales trên máy tính CHI-FP01, và file đó có ACL khá ổn định Nếu muốn copy dữ liệu ACL của sales sau đó lưu vào biến $acl thì các bạn hãy dùng câu lệnh sau: