Tìm kiếm trang web

Kiểm tra tình trạng hộp thư Exchange Server 2019


style="letter-spacing: 0px; text-transform: unset; Background-color: Transparent;">Các tổ chức đã và đang di chuyển hộp thư Exchange Server tại chỗ của họ sang Exchange Online được một thời gian. Đôi khi, những quá trình di chuyển này diễn ra suôn sẻ, đôi khi có những khó khăn, nhưng nhiều khi quá trình di chuyển có thể được thực hiện suôn sẻ hơn đối với quản trị viên khi họ nhận thức rõ hơn về dữ liệu họ đang di chuyển. Với tư cách là Quản trị viên hoặc nhà tư vấn đang tiến hành di chuyển, việc mang lại trải nghiệm tốt nhất cho người dùng cũng nên được đưa vào cuộc trò chuyện. Việc phân tích thuộc tính hộp thư của người dùng phải được thực hiện trước khi di chuyển. Chúng ta nên xem xét điều gì?

Một số thứ chúng ta có thể xem xét là các hộp thư lớn và số lượng mục lớn trong các thư mục riêng lẻ. Các thuộc tính hộp thư này rất quan trọng vì chúng thực sự có thể tạo ra sự khác biệt về hiệu suất trải nghiệm của người dùng cuối với Exchange và Exchange Online (EXO V2). Cả hai đều có thể dẫn đến sự chậm trễ kéo dài trong việc tải xuống tin nhắn, trả lời tin nhắn và gửi tin nhắn. Microsoft cũng có một số đề xuất và nếu chúng tôi kết hợp những đề xuất này với trải nghiệm thực tế, chúng tôi có thể cung cấp trải nghiệm tốt hơn cho người dùng.

Một số cân nhắc về hiệu suất của hộp thư lớn:

  • Dưới 100.000 mục mỗi thư mục
  • Ít hơn 500 thư mục trên mỗi hộp thư
  • Phần cứng nhanh hơn - Ổ SSD (không chống phân mảnh), nhiều RAM hơn
  • Sử dụng ứng dụng khách Outlook mới hơn - thanh trượt có thể điều chỉnh cho ứng dụng khách Chế độ đệm ẩn
  • Hộp thư lưu trữ - giảm email trong hộp thư đang hoạt động
  • Xóa email

Như chúng ta có thể thấy, có những đề xuất liên quan đến các mục trong một thư mục cũng như kích thước của hộp thư. Hãy cùng tìm hiểu một số PowerShell về cách trích xuất dữ liệu trên thuộc tính hộp thư của tổ chức và cách xử lý dữ liệu thu được.

Số lượng vật phẩm lớn

Theo thời gian, các hộp thư có xu hướng trở nên lộn xộn và kết quả là số lượng mục lớn trong các thư mục. Mặc dù gần đây có xu hướng dọn sạch Hộp thư đến của bạn và giữ số lượng email bằng 0, nhưng xu hướng này không phổ biến hoặc không khả thi đối với nhiều người dùng của tổ chức. Chúng tôi nhận thấy rằng có một số người dùng không bao giờ xóa email và cố gắng giữ lại tất cả email để thu hồi và sử dụng trong tương lai. Điều này có xu hướng dẫn đến số lượng mục lớn cũng có thể dẫn đến hiệu suất kém. Chúng tôi có thể sử dụng PowerShell để xác định những người dùng này và các thư mục có số lượng mục lớn của họ, đồng thời làm việc với họ để giảm bớt các mục đó nhằm nâng cao hiệu suất hộp thư của họ trong Outlook. Chung ta se lam như thê nao? Hãy đi sâu vào mã tiếp theo.

PowerShell

Đầu tiên, chúng ta cần đặt một số biến cơ sở mà chúng ta có thể tham khảo sau trong mã. Lưu ý việc sử dụng dòng chú thích để phân tách và xác định mục đích của phần mã:

# Variables
$Counter = 1
$AllMaxFolders = $Null
$AllMaxFolders = @()
$FiftyKPlusFolders = $Null
$FiftyKPlusFolders = @()

Truy xuất danh sách hộp thư:

# Mailboxes
$Mailboxes = Get-Mailbox -ResultSize Unlimited
$TotalCount = $Mailboxes.Count

** Việc sử dụng -ResultSize Unlimited là cần thiết trong môi trường có hơn 1.000 hộp thư. Nếu chúng ta không sử dụng tùy chọn đó thì cmdlet Get-Mailbox sẽ chỉ truy xuất 1.000 hộp thư đầu tiên.

Với danh sách hộp thư, giờ đây chúng tôi có thể kiểm tra từng thư mục trong mỗi hộp thư để tìm hơn 100.000 mục.

Foreach ($Mailbox in $Mailboxes) {

Mỗi vòng lặp sẽ có một tập hợp các biến để sử dụng. Một số giá trị đặt lại này được sử dụng trong vòng lặp để đảm bảo tính toàn vẹn dữ liệu và các giá trị khác dùng để trích xuất các giá trị cần thiết cho hộp thư đang được xử lý:

# Variables
$Name = $Mailbox.Displayname
$PrimarySMTPAddress = [string]$Mailbox.PrimarySMTPAddress
$Items = $Null
$Stats = $Null
$MaxItems = 0
$MaxFolder = $Null
$Items = $True

Tiếp theo, chúng ta cần lấy thông tin thư mục cho hộp thư:

 $FolderStats = Get-MailboxFolderStatistics -Identity $PrimarySMTPAddress -ErrorAction STOP | Select-Object Name,ItemsInFolder,FolderPath }

Trong vòng lặp bên dưới, mỗi thư mục được kiểm tra để xem liệu có hơn 50.000 mục trong một thư mục hay không. Mọi thư mục tìm thấy đều được lưu trữ trong biến $FiftyKPlusFolders.

Foreach ($FolderStat in $FolderStats) {
      
	# Variables for this loop
	$Number = $FolderStat.ItemsInFolder
	$FolderPath = $FolderStat.FolderPath
	$Result = $Null
	
	If ($Number -gt 50000) {
		$Result = "$Name,$Number,$FolderPath"
	}
	If ($Number -gt $MaxItems) {
		$MaxItems = $Number
 		$MaxFolder = $FolderPath
	}
	# Add folder with over 50K items to array
	If ($Null -ne $Result) {
		$FiftyKPlusFolders += $Result
	}
}

Mẫu đầu ra tệp

Mẫu đầu ra từ môi trường không có thư mục mục lớn:

------------------------------------------Folder with over 50K items:------------------------------------------
No folders were found to contain more than 50,000 items!

Tuy nhiên, điều này thường không xảy ra vì tập lệnh thường sẽ tìm thấy ít nhất một hộp thư có nhiều mục trong thư mục thư. Kết quả trong trường hợp này sẽ trông giống như thế này:

------------------------------------------Folder with over 50K items:------------------------------------------Name,Items,FolderPathSam Anderson,71497,/Deleted ItemsEric Fornet,99917,/Deleted ItemsJennifer Dorsey,126569,/InboxLory Kendall,88299,/Deleted ItemsAnthony Cron,158919,/Inbox/AutomatedDave Smith,108682,/InboxRonald Lee,109252,/Inbox/Monitoring

Sau khi có báo cáo này, chúng tôi sẽ bắt đầu với bất kỳ người dùng nào có trên 100 nghìn mặt hàng vì đây là điều có tác động lớn nhất đối với người dùng cuối. Sau đó, bất kỳ thư mục nào được liệt kê nhưng dưới 100K sẽ được xem xét tiếp theo, đặc biệt nếu số lượng mục gần 100k. Tổ chức nên sử dụng báo cáo này để liên hệ với người dùng cuối của họ, chẳng hạn như thông qua Bộ phận trợ giúp, để giúp người dùng giảm số lượng mặt hàng cao này.

Số lượng thư mục lớn

Kiểm tra bất thường là số lượng thư mục có trong hộp thư. Mặc dù hầu hết (nếu không phải tất cả) người dùng của tổ chức sẽ không vượt quá con số này, nhưng vẫn nên kiểm tra vì Microsoft tuyên bố rằng hơn 500 thư mục có thể dẫn đến hiệu suất máy khách kém. Do đó, việc kiểm tra những thứ này là một ý tưởng hay và tương tự như mã trước đó để kiểm tra số lượng mục, chúng tôi sẽ xem xét từng hộp thư trong vòng lặp Foreach và thả kết quả vào tệp CSV để phân tích sau. Lệnh ghép ngắn chính ở đây, cũng bắt chước phần trước, là lệnh ghép ngắn Get-MailboxFolderStatistics mà chúng ta có thể sử dụng để lấy số lượng thư mục từ đó.
Trong trường hợp này, chúng tôi cũng dựa vào lệnh ghép ngắn Measure-Object để cho phép chúng tôi đếm các Thư mục. Tại sao điều này làm việc? Chà, lệnh ghép ngắn Get-MailboxFolderStatistics sẽ liệt kê tất cả các thư mục có trong hộp thư và Measure-Object chỉ đơn giản là đếm các thư mục đó. Nhìn bề ngoài nó sẽ trông giống như thế này:

Get-MailboxFolderStatistics Damian | ft Name,FolderSize

Mỗi dòng này là một thư mục trong hộp thư trong Exchange. Việc đếm từng dòng này sẽ cho chúng ta số lượng chính xác các thư mục có trong hộp thư. Vào PowerShell!

PowerShell

# Variables
$Destination = 'FolderReport.csv'
$Mailboxes = Get-ExOMailbox -ResultSize Unlimited

# Body
$Output = 'Mailbox,FolderCount' | Out-File -FilePath $Destination
Foreach ($Mailbox in $Mailboxes) {
	$Folders = Get-MailboxFolderStatistics -Identity $Mailbox.PrimarySMTPAddress | Measure-Object | Select-Object -ExpandProperty Count
	$MailboxName = $Mailbox.DisplayName
	$Output = "$MailboxName,$Folders" | Out-File -FilePath $Destination -Append
}

Như chúng ta có thể thấy ở trên, chúng ta xác định một tệp đầu ra, cũng như thu thập lại tất cả các hộp thư trong một môi trường trong phần Biến của chúng ta. Sau đó, trong phần Nội dung, chúng tôi xem xét từng hộp thư, đếm các thư mục hiện có rồi xuất các kết quả này sang tệp CSV để phân tích. Khi đó, tệp sẽ trông như thế này (có thể dễ dàng nhập vào Excel):

Mailbox,FolderCount#Safety,18Amy A,63Amy C,233Amy D,908Amy K,373Amy M,65Amy R,837Amy S,54Amy T,171Amy W,356

Lưu ý rằng chúng tôi có nhiều số lượng thư mục từ 18 đến 908. Để rõ ràng, chúng tôi cần tập trung vào những thư mục có trên 500. Sau đó, chúng tôi có thể giảm đầu ra, nếu muốn, bằng cách đặt một truy vấn vào đó như thế này :

If ($Folders -gt 500) {
    $MailboxName = $Mailbox.DisplayName
    $Output = "$MailboxName,$Folders" | Out-File -FilePath $Destination -Append
}

Sau đó, chỉ những hộp thư chứa hơn 500 thư mục mới được xuất sang tệp kết quả của chúng tôi.

Hộp thư lớn (và kho lưu trữ!)

Bây giờ, chúng tôi đã xem xét số lượng mục và thư mục lớn, chúng tôi cũng có thể xem xét các hộp thư tổng thể lớn và kho lưu trữ của chúng như một phần phân tích của chúng tôi về các hộp thư trong một môi trường. Đối với hộp thư này, chúng tôi sẽ xem xét các hộp thư lớn hơn nơi chúng tôi có thể gặp sự cố khi di chuyển, cụ thể là bất kỳ hộp thư nào có kích thước trên 75 GB. Việc sử dụng 75GB không nhất thiết là tùy ý mà giống như một hướng dẫn để sử dụng làm điểm khởi đầu cho việc phân tích kích thước hộp thư và phân tích khả năng xảy ra cả các vấn đề về hiệu suất cũng như các vấn đề di chuyển. Do đó, khi truy vấn hộp thư, chúng tôi có thể báo cáo về bất kỳ hộp thư nào đạt kích thước này và thậm chí có thể xác định các cấp hộp thư, với một cấp dành cho 75-100 GB và một cấp khác dành cho bất kỳ hộp thư nào trên 100 GB. Tiếp theo, mã PowerShell.

PowerShell

 
$Mailboxes = Get-Mailbox -ResultSize Unlimited
$OutputStat = @()
Foreach ($Mailbox in $Mailboxes) {
	$UPN = $Mailbox.SamAccountName
	$MailboxStatistics = Get-MailboxStatistics $UPN | Select-Object DisplayName,@{expression = { $_.TotalItemSize.Value.ToMB()} ; label="MailboxSize"}
	$OutputStat += $MailboxStatistics
}
$OutputStat | Sort MailboxSize

Mã này sẽ cung cấp cho chúng tôi những thông tin cơ bản để bắt đầu và tất cả các hộp thư cũng như kích thước tương đối của chúng sẽ được xuất sang màn hình để chúng tôi xem xét. Để nâng cao hơn nữa mã này nhằm xác định các tầng hộp thư của mình, chúng tôi có thể thêm một số dòng ở gần cuối để phân chia các kích thước hộp thư khác nhau. Như chúng ta đã thảo luận ở trên, biến $MailboxStatistics lưu trữ kích thước của hộp thư bằng MB và do đó, nếu chúng ta cần bắt đầu ở 75GB, chúng ta cần đảm bảo rằng biến $MailboxStatistics có giá trị trên 75.000.

# Variables
$Destination = 'LargeMailboxes.csv'
$Mailboxes = Get-Mailbox -ResultSize Unlimited
$Over75GB = @()
$Over100GB = @()

Foreach ($Mailbox in $Mailboxes) {
	$UPN = $Mailbox.SamAccountName
	$MailboxStatistics = Get-MailboxStatistics $UPN | Select-Object DisplayName,@{expression = { $_.TotalItemSize.Value.ToMB()} ; label="MailboxSize"}

	#Tier 1 and 2 Identification
	If ($MailboxStatistics.MailboxSize -gt 75000) {
		If ($MailboxStatistics.MailboxSize -gt 100000) {
$Over100GB += $MailboxStatistics
		} Else {
$Over75GB += $MailboxStatistics
		}
	}
}
# Output findings to Output File
$Output = "Mailboxes between 75 and 100 GB:" | Out-File -FilePath $Destination
$Over75GB | Out-File -FilePath $Destination -Append
$Output = "Mailboxes over 100 GB:" | Out-File -FilePath $Destination -Append
$Over100GB | Out-File -FilePath $Destination -Append

Tệp đầu ra mẫu

Mailboxes between 75 and 100 GB:

DisplayName TotalItemSize
----------- -------------
Nick Smarth 82881.44
Sarah Johnson 93458.09

Mailboxes over 100 GB:

DisplayName TotalItemSize
----------- -------------
Damian Scoles 108520.78

Từ báo cáo này, chúng tôi có ý tưởng rõ ràng và ngắn gọn về những người dùng mà chúng tôi cần trò chuyện để giảm kích thước hộp thư của họ. Các hộp thư lưu trữ về cơ bản giống nhau với thay đổi duy nhất được yêu cầu là thêm khóa chuyển '-Archive' vào Lệnh ghép ngắn Get-Mailbox. Phần còn lại của mã sẽ chạy tương tự nhưng được thực thi đối với bất kỳ hộp thư lưu trữ nào mà người dùng cuối có thể có.

Phần kết luận

Như mọi khi, PowerShell là một công cụ rất thiết thực và mạnh mẽ có thể được sử dụng để xác định các sự cố tiềm ẩn cần khắc phục trong môi trường Exchange Server. Việc xác định các hộp thư có quá nhiều mục thư mục, quá nhiều thư mục và các hộp thư khổng lồ trở thành hiện thực thực tế với PowerShell. Ba phần mã này cũng có thể được kết hợp thành một báo cáo duy nhất để bộ phận CNTT sử dụng nhằm khắc phục sự cố và/hoặc khắc phục các sự cố phổ biến này.

Bài viết liên quan