10 thủ thuật với PowerShell trong Windows Server 2008
Phần 2
Thu thập thông tin ca 10 lỗi gần nhất:
Hàng ngày, 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
Error. Và như vậy,PowerShell sthu thập toàn bộ thông tin có liên quan ti 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ó thchỉ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 u lệnh
trước đó thành ft, với alias làFormat-Table, 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 -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 nh riêng, người
dùng skhông phải kéo chuột xuống dưới để xem tất cả:
Bây gilà 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 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, nhiệm vụ thông báo với người sdụ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?
dụ, chúng ta muốn xem kết quả báo 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 n ln lượt là chi-dc01chi-dc02, gisrằ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, 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 quyn điều khiển trên t mục:
Trên thực tế, 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 ch. Và để khắc phục thì chúng ta chcần reset lại
quyền điều khiển tương ứng vi 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 lẽ là sdụng Get-Acl để thu thập thông
tin ACL t1 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 những file chia sẻ tên sales trên máy
tính CHI-FP01, file đó 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: