Advertisement
icebreaker374

MailboxReport PowerShell7

Dec 21st, 2023
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. $Mailboxes | ForEach-Object -ThrottleLimit 10 -Parallel {
  2.  
  3. $MailboxName = $_.DisplayName
  4. $MailboxEmail = $_.UserPrincipalName
  5. $MailboxType = $_.RecipientTypeDetails
  6.  
  7. Write-Host "Collecting mailbox stats for $MailboxName ($MailboxEmail)"
  8.  
  9. Get-MgUserLicenseDetail -UserId $_.UserPrincipalName | Select-Object SkuId | ForEach-Object {
  10.  
  11. $LicenseInfo = $_.SkuId
  12. $UserLicenseNames += $LicensesHashTable.Item("$LicenseInfo") + ", "
  13. }
  14.  
  15. if($UserLicenseNames -NE $null){
  16.  
  17. $UserLicenses = $UserLicenseNames.SubString(0, ($UserLicenseNames.Length)-2)
  18. }
  19.  
  20. else{
  21.  
  22. $UserLicenses = "N/A"
  23. }
  24.  
  25. $MailboxStats = Get-EXOMailboxStatistics -Identity $_.UserPrincipalName | Select-Object TotalItemSize
  26. $MailboxSize = [string]($MailboxStats.TotalItemSize)
  27.  
  28. $MailboxStatsReport += Get-MgUser -UserId $_.UserPrincipalName | Select-Object DisplayName, UserPrincipalName, @{N='MailboxSize';E={$MailboxSize}}, @{N='Licenses';E={$UserLicenses}}
  29. Start-Sleep -Seconds 2
  30.  
  31. $MailboxStatsReport | Export-Excel -Path C:\Temp\MailboxUsageReportPS7.xlsx -Append
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement