10 thủthuậtvới PowerShell trong WindowsServer2008 –
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:
Tiế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.
Cá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:
. 10 thủ thuật với PowerShell trong Windows Server 20 08 –
Phần 2
Thu thập thông tin của 10 lỗi gần nhất:
Hàng ngày, có.
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