PowerShell , Office 365 , cú pháp |Sức mạnh của PowerShell | Phần 2/3 .com
Trong bài viết hiện tại, chúng ta sẽ xem xét cách sử dụng lệnh “Get” nổi tiếng của PowerShell để “tìm nạp” (Nhận) đối tượng và hiển thị thông tin về các đối tượng.
Ngoài ra, chúng ta sẽ tìm hiểu cách chúng ta có thể “định hình” hoặc tối ưu hóa đầu ra mà chúng ta nhận được từ lệnh “Nhận” của PowerShell cho các nhu cầu cụ thể của mình.
Sức mạnh của PowerShell | Loạt bài viết
Chuỗi bài viết về Power of PowerShell, bao gồm 3 bài sau:
- Sức mạnh của PowerShell | Phần 1/3
- Sức mạnh của PowerShell | Phần 2/3
- Sức mạnh của PowerShell | Phần 3/3
Giới thiệu lệnh “Nhận” của PowerShell
Đầu ra lệnh “Nhận” dựa trên định dạng đầu ra được xác định trước (thông tin được hiển thị trên màn hình). Ví dụ: khi sử dụng lệnh get để hiển thị thông tin về Hộp thư, thông tin sẽ được hiển thị dưới dạng bảng, với “Tiêu đề bảng” (thuộc tính) được xác định trước.
Với mục đích trình diễn, chúng tôi sẽ sử dụng lệnh ghép ngắn PowerShell cơ bản nhất:
Get-Mailbox
Ví dụ 1 - Hiển thị thông tin về phiên bản cụ thể của đối tượng
Để nhận thông tin về một Hộp thư cụ thể, chúng tôi sẽ cần cung cấp danh tính Hộp thư.
Cú pháp cho lệnh PowerShell là:
Get-Mailbox <identity>Bạn có thể thấy trong ảnh chụp màn hình rằng kết quả (đầu ra) được hiển thị ở định dạng bảng, với “Tiêu đề bảng” (Quyền sở hữu đối tượng) được xác định trước, chẳng hạn như Tên hộp thư và Bí danh, tên Máy chủ lưu trữ Hộp thư và Kích thước hộp thư.
Ví dụ 2 - Hiển thị thông tin về lớp đối tượng
Khi chúng tôi sử dụng lệnh Get-Mailbox mà không chỉ định danh tính Hộp thư, lệnh “Nhận” mặc định là Nhận/Tìm nạp tất cả các đối tượng của lớp Hộp thư. (PowerShell “hiểu” rằng chúng tôi cần thông tin về tất cả các đối tượng “thuộc về” lớp cụ thể).
Để hiển thị danh sách tất cả các hộp thư hiện có, chúng tôi sử dụng lệnh:
Get-MailboxTrong ảnh chụp màn hình, bạn có thể thấy đầu ra từ lệnh Get-Mailbox hiển thị danh sách tất cả các Hộp thư hiện có.
Lưu ý: chúng tôi có thể kiểm soát số lượng hộp thư sẽ được hiển thị. Trong trường hợp chúng ta có nhiều hộp thư, lệnh “Get-Mailbox” sẽ không hiển thị tất cả các Hộp thư. Để “thực thi” PowerShell hiển thị “danh sách đầy đủ” của tất cả các Hộp thư, chúng ta có thể thêm tham số: ResultSize không giới hạn
Cú pháp lệnh PowerShell:
Get-Mailbox -ResultSize unlimitedNhận lệnh ghép ngắn - Định dạng kết quả đầu ra
Khi chúng ta sử dụng lệnh “Get” để hiển thị thông tin về các đối tượng, có hai tùy chọn định dạng có sẵn:
- Định dạng bảng
- Định dạng danh sách
(Định dạng hiển thị mặc định cho lệnh “Get” là: Table Format).
1. Định dạng bảng
“Định dạng bảng ” (cũng được mô tả là định dạng dạng bảng), cho phép chúng tôi hiển thị thông tin ở định dạng “dễ đọc”.
Định dạng bảng dựa trên “Cột bảng ” (thuộc tính đối tượng) và các giá trị đối tượng hiển thị “ dưới ” Tiêu đề bảng.
Nhược điểm chính của định dạng Bảng là độ rộng của bảng điều khiển PowerShell. “Lượng” dữ liệu có thể hiển thị trên màn hình bị giới hạn ở độ rộng của bảng điều khiển PowerShell. PowerShell cho phép chúng tôi kiểm soát “thiết kế” của định dạng bảng bằng cách chọn Tiêu đề bảng (thuộc tính đối tượng) hiển thị trên màn hình và bằng cách sử dụng “Tham số định dạng” cho phép chúng tôi kiểm soát các tham số như - Quấn từ, Độ rộng hàng và hơn thế nữa.
Như đã đề cập trước đó, khi chúng ta sử dụng lệnh “Get”, định dạng hiển thị mặc định là Table Format. Khi cần tùy chỉnh đầu ra của lệnh “Get”, chúng ta cần “thêm” tùy chọn Pipe để “thông báo” cho PowerShell, định dạng bắt buộc là gì và các thuộc tính hoặc tham số thiết kế bắt buộc mà chúng ta muốn sử dụng là gì.
Lệnh ghép ngắn mà chúng ta sử dụng để sử dụng Table Format là Format-Table, hoặc có thể sử dụng phiên bản rút gọn: FT
Ví dụ: khi muốn hiển thị thông tin dưới dạng bảng chúng ta có thể sử dụng cú pháp sau:
Get-Mailbox |Format-TableMột lựa chọn bổ sung là sử dụng phiên bản rút gọn: FT
Get-Mailbox |FTTrong ảnh chụp màn hình, chúng ta có thể thấy danh sách Hộp thư của người dùng. Lưu ý rằng “Tiêu đề bảng” được “cấu hình sẵn” bằng tùy chọn hiển thị mặc định của Lệnh “Nhận”.
Hãy xem điều gì đã xảy ra nếu chúng ta sử dụng lệnh Get-Mailbox mà không có tùy chọn |Format-Table.
Bạn có thể thấy rằng kết quả đầu ra giống hệt nhau, vì như đã đề cập, định dạng mặc định cho lệnh “Nhận” là Format-Table.
2. Định dạng danh sách
Ưu điểm chính của việc sử dụng “Định dạng danh sách” là chúng ta có thể hiển thị tất cả thông tin (thuộc tính) có sẵn về đối tượng. Định dạng Danh sách không bị “ảnh hưởng” bởi “giới hạn độ rộng” của bảng điều khiển PowerShell vì thông tin về đối tượng (thuộc tính và giá trị), được hiển thị dưới dạng “danh sách” bên dưới tên đối tượng.
Định dạng này đôi khi có thể bị coi là “bất lợi” vì khi hiển thị về nhiều đối tượng, thông tin ở định dạng Danh sách là “Kém dễ đọc” so với Định dạng Bảng.
Cú pháp lệnh PowerShell:
Get-Mailbox |Format-ListMột lựa chọn bổ sung là sử dụng phiên bản rút gọn: FL
Get-Mailbox |FLNếu nhìn vào ảnh chụp màn hình, bạn có thể thấy rằng khi chúng tôi sử dụng tùy chọn “Danh sách định dạng”, chúng tôi nhận được nhiều trường dữ liệu (thuộc tính) bổ sung mà chúng tôi không có sẵn khi chúng tôi sử dụng Định dạng bảng.
Định dạng đầu ra của lệnh “Nhận”
Trong phần này, chúng ta sẽ tìm hiểu cách “tối ưu hóa ” đầu ra được hiển thị bằng lệnh “Nhận”.
Những thách thức mà chúng ta gặp phải là:
- Cách hiển thị thông tin (thuộc tính) phù hợp với nhu cầu của chúng ta Như bạn nhớ, định dạng Bảng hiển thị thông tin rất hạn chế và Định dạng Danh sách hiển thị “quá nhiều thông tin” không dễ đọc.
- Cách khắc phục hạn chế về chiều rộng màn hình bảng điều khiển PowerShell (Bảng điều khiển PowerShell có chiều rộng cụ thể giới hạn lượng dữ liệu có thể hiển thị).
Hãy bắt đầu xem xét giải pháp khác nhau mà chúng ta có thể sử dụng để giải quyết hạn chế này.
Sử dụng tùy chọn “Thuộc tính”
Tùy chọn “thuộc tính ” cho phép chúng tôi chọn các thuộc tính phù hợp với nhu cầu của mình.
Ví dụ: chúng tôi muốn hiển thị thông tin về Hộp thư. Thông tin mà chúng tôi quan tâm bao gồm các thuộc tính sau: Bí danh người dùng, Tên hiển thị của người dùng và Địa chỉ email người dùng.
Để có thể “ghi đè” Thuộc tính mặc định được hiển thị bằng lệnh “Nhận”, chúng ta có thể sử dụng tùy chọn “thuộc tính” và chỉ định “tên thuộc tính” mà chúng ta muốn hiển thị.
Cú pháp PowerShell là:
Get-Mailbox |Format-Table -Property Alias, Displayname,EmailAddressesChúng ta có thể sử dụng phiên bản rút gọn mà không cần chỉ định tùy chọn “thuộc tính”. Khi chúng tôi sử dụng tùy chọn “Định dạng bảng” hoặc “Danh sách định dạng” và thêm tên thuộc tính, PowerShell “đủ thông minh” để hiểu rằng đây là những thuộc tính sẽ được hiển thị.
Phiên bản rút gọn của lệnh PowerShell sẽ có dạng:
Get-Mailbox |FT Alias,Displayname,EmailAddressesLưu ý: Trong các ví dụ tiếp theo, chúng tôi sẽ sử dụng phiên bản rút gọn
Hướng dẫn chung:
- Tên thuộc tính - tên thuộc tính phải được viết là “một từ” không có khoảng trắng.
- Tách riêng tên thuộc tính - khi viết thêm một tên thuộc tính, chúng ta nên thêm ký tự “dấu phẩy” sau mỗi tên Thuộc tính. Chúng ta có thể có ký tự “dấu cách” giữa các tên Thuộc tính, miễn là chúng ta sử dụng ký tự “dấu phẩy” để phân tách từng tên Thuộc tính.
Trong ảnh chụp màn hình sau, chúng ta có thể thấy đầu ra của lệnh Get-Mailbox hiển thị các thuộc tính mà chúng ta chọn:
Lưu ý rằng mặc dù chúng tôi cố gắng hiển thị các thuộc tính bắt buộc nhưng chúng tôi vẫn gặp sự cố về “chiều rộng” của bảng điều khiển PowerShell.
Khi hiển thị các thuộc tính bao gồm “Giá trị dài”, giải pháp tùy chọn là sử dụng tùy chọn định dạng Danh sách.
Ví dụ: hãy sử dụng cùng một lệnh và sử dụng tùy chọn Format-List:
Get-Mailbox |FL Alias,Displayname,EmailAddressesSử dụng tùy chọn “Gói”
Một tùy chọn khác mà chúng tôi sử dụng để “xử lý” với “Giá trị dài” chẳng hạn như: địa chỉ email, là tùy chọn “Gói“. Khi chúng tôi sử dụng tùy chọn “bọc”, các thuộc tính như địa chỉ Email bao gồm “giá trị dài” đạt đến giới hạn “chiều rộng” của bảng điều khiển PowerShell, sẽ được “di chuyển” sang dòng tiếp theo, vì vậy chúng tôi sẽ có thể thấy “Đầy đủ value ”.
Ví dụ: để giảm thiểu bằng “giới hạn độ rộng của bảng điều khiển PowerShell ”, chúng ta có thể sử dụng tùy chọn “Gói ”.
Cú pháp lệnh PowerShell:
Get-Mailbox |FT Alias,Displayname,EmailAddresses -WrapTrong ảnh chụp màn hình, bạn có thể thấy kết quả khi sử dụng tùy chọn “Wrap”. Khi các ký tự “đến cuối” của bảng điều khiển PowerShell bên phải “viền”, phần còn lại của “chuỗi giá trị” (Địa chỉ Email) sẽ được hiển thị trên một dòng mới.
Sử dụng tùy chọn “Nhóm”
Tùy chọn “Nhóm”, như tên ngụ ý, cho phép chúng tôi nhóm các kết quả được hiển thị.
Ví dụ: khi chúng tôi sử dụng lệnh “Get-Mailbox” tiêu chuẩn, kết quả được hiển thị sẽ bao gồm danh sách tất cả các loại Hộp thư, chẳng hạn như dưới dạng Hộp thư người dùng, Hộp thư phòng, Hộp thư chung, v.v.
Khi sử dụng tùy chọn “Nhóm”, chúng ta sẽ cần chỉ định các thuộc tính sẽ đóng vai trò là “nguồn” cho “nhóm”.
Ví dụ: để hiển thị thông tin về Hộp thư được nhóm theo loại Hộp thư, chúng tôi sẽ sử dụng thuộc tính “RecipientTypeDetails”.
Cú pháp lệnh PowerShell:
Get-Mailbox |Group RecipientTypeDetailsTrong ảnh chụp màn hình, bạn có thể thấy rằng tùy chọn “Nhóm” cho phép chúng tôi có được “Chế độ xem rõ ràng” về loại Hộp thư mà chúng tôi có và về số lượng của từng loại Hộp thư.
Sử dụng tùy chọn “Sắp xếp”
Tùy chọn “sắp xếp” cho phép chúng tôi sắp xếp đầu ra bằng cách liên quan đến một Tiêu đề bảng (thuộc tính) cụ thể.
Ví dụ: khi chúng tôi muốn sắp xếp đầu ra của lệnh Get-Mailbox theo thuộc tính “Bí danh”.
Cú pháp lệnh PowerShell:
Get-Mailbox |Sort-Object AliasChúng ta có thể sử dụng phiên bản rút gọn của lệnh sắp xếp:
Get-Mailbox | Sort AliasViệc “sắp xếp” các giá trị có thể được thực hiện bằng cách sử dụng thứ tự Tăng dần hoặc Giảm dần. Không có “Công tắc tăng dần” cho lệnh ghép ngắn Sort-Object, vì mặc định của tùy chọn “Sắp xếp” là Tăng dần.
Trong trường hợp muốn sử dụng tùy chọn Giảm dần, chúng ta có thể sử dụng cú pháp sau:
Get-Mailbox |Sort Alias DescendingSử dụng tùy chọn “AutoSize”
Tùy chọn “Tự động kích thước” có liên quan khi chúng tôi chọn hiển thị thông tin bằng cách sử dụng Định dạng bảng. Như chúng ta đã biết, khi sử dụng định dạng Bảng, đầu ra từ lệnh “Nhận” đang sử dụng một “tham số thiết kế” được xác định trước, chẳng hạn như chiều rộng hàng của Bảng.
Ví dụ: khi sử dụng lệnh Get-Mailbox, bạn có thể thấy trong ảnh chụp màn hình rằng các Hộp thư có “Tên dài ” chẳng hạn như “DiscoverySearchmailbox” không được hiển thị đầy đủ:
Để khắc phục hạn chế này, chúng ta có thể sử dụng tùy chọn: -AutoSize
Khi sử dụng tùy chọn AutoSize, PowerShell sẽ tùy chỉnh độ rộng hàng của Bảng để vừa với giá trị với “Tên dài nhất”.
Cú pháp lệnh PowerShell:
Get-Mailbox |FT -AutoSizeLưu ý rằng bây giờ chúng ta có thể thấy “Tên đầy đủ ” của “DiscoverySearchmailbox ” nhưng do giới hạn độ rộng của bảng điều khiển PowerShell nên các thuộc tính mặc định khác đã bị “xóa” khỏi màn hình vì bảng điều khiển PowerShell không đủ rộng để hiển thị các thuộc tính còn lại như tên máy chủ, v.v.
Kết hợp các thông số hiển thị
Chúng ta có thể sử dụng kết hợp tham số hiển thị để tối ưu hóa đầu ra được hiển thị.
Trong ví dụ sau, chúng ta sử dụng kết hợp “tham số hiển thị”: Sắp xếp, Định dạng bảng và Nhóm theo.
Lưu ý: thay vì sử dụng tham số “group ” chúng ta sẽ sử dụng tham số “Groupby ”. Tùy chọn: ”Groupby ” cho phép chúng tôi hiển thị thông tin ở định dạng khác nhau.
Cú pháp lệnh PowerShell:
Get-Mailbox |Sort RecipientTypeDetails |FT Name,Alias
-Groupby RecipientTypeDetails- Phần đầu tiên sẽ “Nhận” thông tin về toàn bộ Hộp thư hiện có.
- Phần thứ hai sẽ sắp xếp kết quả (thông tin về Hộp thư) bằng cách sử dụng thuộc tính “RecipientTypeDetails”.
- Phần thứ ba sẽ định dạng đầu ra bằng cách sử dụng Định dạng bảng và hiển thị thuộc tính “Bí danh” và “tên”, còn tùy chọn “Groupby” sẽ hiển thị thông tin trong “phần”.
Mỗi “Phần” bao gồm thông tin về Hộp thư “thuộc về” loại Hộp thư cụ thể như Hộp thư Người dùng, Hộp thư Dùng chung, v.v.











