[玩转系统] 使用 PowerShell 导出 Microsoft 365 邮箱大小报告
作者:精品下载站 日期:2024-12-14 09:10:01 浏览:17 分类:玩电脑
使用 PowerShell 导出 Microsoft 365 邮箱大小报告
是否要导出所有 Microsoft 365 邮箱存储大小数据?在 Microsoft 365 管理中心中,您可以导出邮箱使用情况报告。但这份名单并未显示详细信息。在本文中,我们将向您展示如何使用 PowerShell 导出 Microsoft 365 邮箱大小报告。
在 Microsoft 365 管理中心获取邮箱大小报告
我们想向您展示如何在 Microsoft 365 管理中心中显示和导出邮箱使用情况报告。
1.显示邮箱使用情况报告
请按照以下步骤获取 Microsoft 365 中的所有用户邮箱存储:
- 登录 Microsoft 365 管理中心
- 在菜单上,单击报告 > 使用情况
- 在“概览”下 > 单击交换
- 点击邮箱使用情况
您可以在图表中查看已使用的邮箱存储总数。但我们希望查看每个邮箱使用的存储空间。
- 向下滚动查看每个邮箱的信息列表
注意:默认情况下,您只能看到数字和字母,而看不到每个邮箱的用户名。自 2021 年 9 月以来,Microsoft 一直隐藏所有报告的用户信息,但你可以更改这些设置。
为了保护隐私,每个邮箱的用户名都被隐藏。在下一步中,我们将向您展示如何查看报告中的用户名。
如果您可以看到用户名,请跳过下一步并转到将邮箱使用情况导出到 CSV 文件。
2.在邮箱使用报告中显示用户名
要在报告中显示用户名,请执行以下步骤:
- 点击设置 > 组织设置
- 点击服务
- 点击报告
- 清除复选框在所有报告中显示隐藏的用户、组和网站名称
- 点击保存
3.将邮箱使用情况导出到CSV文件
显示用户名后,您可以将邮箱大小报告导出到 CSV 文件。
返回所有邮箱使用情况列表。在 Microsoft 365 管理中心中,导航到报告 > 使用情况 > Exchange > 邮箱使用情况。
- 点击导出
- 使用 Microsoft Excel 打开 CSV 文件以查看和排序数据
Microsoft 365 的邮箱使用情况报告显示所有邮箱以及已使用的存储空间。
邮箱使用情况报告显示有关邮箱大小的有限数据。如果您需要更详细的数据,我们建议您在下一步中使用 PowerShell 脚本。
使用 PowerShell 脚本获取 Microsoft 365 邮箱大小报告
获取所有用户的邮箱大小的一个很好的方法是使用下面的 PowerShell 脚本。
MailboxSizeReport365.ps1 PowerShell 脚本有 2 个选项:
- 导出到 CSV 文件 (OFFICE 365)
- 输入带通配符的邮箱名称(导出)(OFFICE 365)
脚本将运行并查找拥有邮箱的所有用户,并在 CSV 文件中收集每个邮箱的以下信息:
- 显示名称
- 别名
- Sam 帐户名
- 收件人类型
- 收件人组织单位
- 主 SMTP 地址
- 电子邮件地址
- 数据库
- 服务器名称
- 项目总尺寸
- 项目计数
- 已删除项目计数
- 已删除项目总大小
- 禁止发送接收MB 配额
- 使用数据库配额默认值
- 上次登录时间
- 档案名称
- 存档状态
- 档案状态
- 存档配额
- 存档总项目大小
- 存档总项目数
我们将在接下来的步骤中向您展示这两个选项和结果。
1. 连接到 PowerShell Online
以管理员身份启动 Windows PowerShell 并运行 cmdlet Connect-ExchangeOnline 以连接到 Exchange Online PowerShell。
Connect-ExchangeOnline
2.下载MailboxSizeReport365 PowerShell脚本
要下载 MailboxSizeReport365 PowerShell 脚本,请选择以下选项之一:
- 下载 MailboxSizeReport365.ps1 PowerShell 脚本
- 或者将以下脚本复制到记事本中并将其另存为MailboxSizeReport365.ps1文件
注意:该脚本不会获取非活动邮箱文件夹统计信息。您需要先为用户邮箱分配许可证,然后才能获取任何数据。
<#
.SYNOPSIS
.\MailboxSizeReport365.ps1
.DESCRIPTION
Connect to Exchange Online PowerShell first.
The script exports a Mailbox Size Report for all Microsoft 365 mailboxes
to a CSV file. You can also export a single mailbox or WildCard as an option.
.LINK
o365info.com/microsoft-365-mailbox-size-report
.NOTES
Written By: o365info
Website: o365info.com
.CHANGELOG
V1.00, 03/24/2023 - Initial version
#>
Write-host "
Mailbox Size Report 365
----------------------------
1.Export to CSV File (OFFICE 365)
2.Enter the Mailbox Name with Wild Card (Export) (OFFICE 365)"-ForeGround "Cyan"
#----------------
# Script
#----------------
Write-Host " "
$number = Read-Host "Choose The Task"
$output = @()
switch ($number) {
1 {
$i = 0
$CSVfile = Read-Host "Enter the Path of CSV file (Eg. C:\Report.csv)"
$AllMailbox = Get-mailbox -Resultsize Unlimited
Foreach ($Mbx in $AllMailbox) {
$Stats = Get-mailboxStatistics -Identity $Mbx.distinguishedname -WarningAction SilentlyContinue
if ($Mbx.ArchiveName.count -eq "0") {
$ArchiveTotalItemSize = $null
$ArchiveTotalItemCount = $null
}
if ($Mbx.ArchiveName -ge "1") {
$MbxArchiveStats = Get-mailboxstatistics $Mbx.distinguishedname -Archive -WarningAction SilentlyContinue
$ArchiveTotalItemSize = $MbxArchiveStats.TotalItemSize
$ArchiveTotalItemCount = $MbxArchiveStats.BigFunnelMessageCount
}
$userObj = New-Object PSObject
$userObj | Add-Member NoteProperty -Name "Display Name" -Value $mbx.displayname
$userObj | Add-Member NoteProperty -Name "Alias" -Value $Mbx.Alias
$userObj | Add-Member NoteProperty -Name "SamAccountName" -Value $Mbx.SamAccountName
$userObj | Add-Member NoteProperty -Name "RecipientType" -Value $Mbx.RecipientTypeDetails
$userObj | Add-Member NoteProperty -Name "Recipient OU" -Value $Mbx.OrganizationalUnit
$userObj | Add-Member NoteProperty -Name "Primary SMTP address" -Value $Mbx.PrimarySmtpAddress
$userObj | Add-Member NoteProperty -Name "Email Addresses" -Value ($Mbx.EmailAddresses -join ",")
$userObj | Add-Member NoteProperty -Name "Database" -Value $Stats.Database
$userObj | Add-Member NoteProperty -Name "ServerName" -Value $Stats.ServerName
$userObj | Add-Member NoteProperty -Name "TotalItemSize" -Value $Stats.TotalItemSize
$userObj | Add-Member NoteProperty -Name "ItemCount" -Value $Stats.ItemCount
$userObj | Add-Member NoteProperty -Name "DeletedItemCount" -Value $Stats.DeletedItemCount
$userObj | Add-Member NoteProperty -Name "TotalDeletedItemSize" -Value $Stats.TotalDeletedItemSize
$userObj | Add-Member NoteProperty -Name "ProhibitSendReceiveQuota-In-MB" -Value $Mbx.ProhibitSendReceiveQuota
$userObj | Add-Member NoteProperty -Name "UseDatabaseQuotaDefaults" -Value $Mbx.UseDatabaseQuotaDefaults
$userObj | Add-Member NoteProperty -Name "LastLogonTime" -Value $Stats.LastLogonTime
$userObj | Add-Member NoteProperty -Name "ArchiveName" -Value ($Mbx.ArchiveName -join ",")
$userObj | Add-Member NoteProperty -Name "ArchiveStatus" -Value $Mbx.ArchiveStatus
$userObj | Add-Member NoteProperty -Name "ArchiveState" -Value $Mbx.ArchiveState
$userObj | Add-Member NoteProperty -Name "ArchiveQuota" -Value $Mbx.ArchiveQuota
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemSize" -Value $ArchiveTotalItemSize
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemCount" -Value $ArchiveTotalItemCount
$output += $UserObj
# Update Counters and Write Progress
$i++
if ($AllMailbox.Count -ge 1) {
Write-Progress -Activity "Scanning Mailboxes . . ." -Status "Scanned: $i of $($AllMailbox.Count)" -PercentComplete ($i / $AllMailbox.Count * 100)
}
}
$output | Export-csv -Path $CSVfile -NoTypeInformation -Encoding UTF8 #-Delimiter ","
; Break
}
2 {
$i = 0
$CSVfile = Read-Host "Enter the Path of CSV file (Eg. C:\DG.csv)"
$MailboxName = Read-Host "Enter the Mailbox name or Range (Eg. Mailboxname , Mi*,*Mik)"
$AllMailbox = Get-mailbox $MailboxName -Resultsize Unlimited
Foreach ($Mbx in $AllMailbox) {
$Stats = Get-mailboxStatistics -Identity $Mbx.distinguishedname -WarningAction SilentlyContinue
if ($Mbx.ArchiveName.count -eq "0") {
$ArchiveTotalItemSize = $null
$ArchiveTotalItemCount = $null
}
if ($Mbx.ArchiveName -ge "1") {
$MbxArchiveStats = Get-mailboxstatistics $Mbx.distinguishedname -Archive -WarningAction SilentlyContinue
$ArchiveTotalItemSize = $MbxArchiveStats.TotalItemSize
$ArchiveTotalItemCount = $MbxArchiveStats.BigFunnelMessageCount
}
$userObj = New-Object PSObject
$userObj | Add-Member NoteProperty -Name "Display Name" -Value $mbx.displayname
$userObj | Add-Member NoteProperty -Name "Alias" -Value $Mbx.Alias
$userObj | Add-Member NoteProperty -Name "SamAccountName" -Value $Mbx.SamAccountName
$userObj | Add-Member NoteProperty -Name "RecipientType" -Value $Mbx.RecipientTypeDetails
$userObj | Add-Member NoteProperty -Name "Recipient OU" -Value $Mbx.OrganizationalUnit
$userObj | Add-Member NoteProperty -Name "Primary SMTP address" -Value $Mbx.PrimarySmtpAddress
$userObj | Add-Member NoteProperty -Name "Email Addresses" -Value ($Mbx.EmailAddresses -join ",")
$userObj | Add-Member NoteProperty -Name "Database" -Value $Stats.Database
$userObj | Add-Member NoteProperty -Name "ServerName" -Value $Stats.ServerName
$userObj | Add-Member NoteProperty -Name "TotalItemSize" -Value $Stats.TotalItemSize
$userObj | Add-Member NoteProperty -Name "ItemCount" -Value $Stats.ItemCount
$userObj | Add-Member NoteProperty -Name "DeletedItemCount" -Value $Stats.DeletedItemCount
$userObj | Add-Member NoteProperty -Name "TotalDeletedItemSize" -Value $Stats.TotalDeletedItemSize
$userObj | Add-Member NoteProperty -Name "ProhibitSendReceiveQuota-In-MB" -Value $Mbx.ProhibitSendReceiveQuota
$userObj | Add-Member NoteProperty -Name "UseDatabaseQuotaDefaults" -Value $Mbx.UseDatabaseQuotaDefaults
$userObj | Add-Member NoteProperty -Name "LastLogonTime" -Value $Stats.LastLogonTime
$userObj | Add-Member NoteProperty -Name "ArchiveName" -Value ($Mbx.ArchiveName -join ",")
$userObj | Add-Member NoteProperty -Name "ArchiveStatus" -Value $Mbx.ArchiveStatus
$userObj | Add-Member NoteProperty -Name "ArchiveState" -Value $Mbx.ArchiveState
$userObj | Add-Member NoteProperty -Name "ArchiveQuota" -Value $Mbx.ArchiveQuota
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemSize" -Value $ArchiveTotalItemSize
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemCount" -Value $ArchiveTotalItemCount
$output += $UserObj
# Update Counters and Write Progress
$i++
if ($AllMailbox.Count -ge 1) {
Write-Progress -Activity "Scanning Mailboxes . . ." -Status "Scanned: $i of $($AllMailbox.Count)" -PercentComplete ($i / $AllMailbox.Count * 100) -ErrorAction SilentlyContinue
}
}
$output | Export-csv -Path $CSVfile -NoTypeInformation -Encoding UTF8 #-Delimiter ","
; Break
}
Default { Write-Host "No matches found , Enter Options 1 or 2" -ForeGround "red" }
}
- 如果您还没有 (C:) 驱动器中的 scripts 和 temp 文件夹,请创建它们
- 将 MailboxSizeReport365.ps1 PowerShell 脚本保存在 C:\scripts 文件夹中
打开文件检查是否已解锁,防止运行脚本时出错。
3.导出所有Microsoft 365大小报告
1. 运行以下 PowerShell 命令来启动脚本。
C:\scripts\.\MailboxSizeReport365.ps1
输出将显示 Mailbox Size Report 365 脚本,其中有 2 个选项。
PS C:\scripts\.\MailboxSizeReport365.ps1
Mailbox Size Report 365
----------------------------
1.Export to CSV File (OFFICE 365)
2.Enter the Mailbox Name with Wild Card (Export) (OFFICE 365)
Choose The Task:
首先,我们要显示选项1。导出到 CSV 文件 (OFFICE 365)
2. 输入1 并按Enter。
PS C:\scripts\.\MailboxSizeReport365.ps1
Mailbox Size Report 365
----------------------------
1.Export to CSV File (OFFICE 365)
2.Enter the Mailbox Name with Wild Card (Export) (OFFICE 365)
Choose The Task: 1
该脚本将询问路径,因此当您导出 CSV 文件时,它将导出到该路径。
3.插入以下路径C:\temp\report365.csv并按Enter。
PS C:\scripts\.\MailboxSizeReport365.ps1
Mailbox Size Report 365
----------------------------
1.Export to CSV File (OFFICE 365)
2.Enter the Mailbox Name with Wild Card (Export) (OFFICE 365)
Choose The Task: 1
Enter the Path of CSV file (Eg. C:\Report.csv): C:\temp\report365.csv
邮箱大小报告 365 脚本开始扫描组织中的所有邮箱。如果您有很多邮箱用户,则可能需要几分钟的时间。
之后,将创建列表,并将结果导出到 CSV 文件。完成后,您可以退出脚本。
您将在 C:\temp 中找到以 CSV 文件形式导出的列表。
4.导出特定的Microsoft 365邮箱大小报告
您还可以导出一个特定的 Microsoft 365 邮箱或多个以相同字母或数字开头或结尾的邮箱。
1. 运行以下 PowerShell 命令来启动脚本。
C:\scripts\.\MailboxSizeReport365.ps1
输出将显示邮箱大小报告 365 脚本,其中包含 2 个选项。
我们想要显示选项2。输入带通配符的邮箱名称(导出)(OFFICE 365)
2. 输入数字2,然后按Enter。
PS C:\scripts\.\MailboxSizeReport365.ps1
Mailbox Size Report 365
----------------------------
1.Export to CSV File (OFFICE 365)
2.Enter the Mailbox Name with Wild Card (Export) (OFFICE 365)
Choose The Task: 2
该脚本将询问路径,因此当您导出 CSV 文件时,它将导出到该路径。
3. 输入以下路径 C:\temp\report365project.csv 并按 Enter。
PS C:\scripts\.\MailboxSizeReport365.ps1
Mailbox Size Report 365
----------------------------
1.Export to CSV File (OFFICE 365)
2.Enter the Mailbox Name with Wild Card (Export) (OFFICE 365)
Choose The Task: 2
Enter the Path of CSV file (Eg. C:\DG.csv): C:\temp\report365project.csv
现在,脚本将要求输入邮箱名称或范围。
您可以键入邮箱的全名或邮箱中带有星号 (*) 的字母和数字。在字母和数字之前、之后或之间使用星号。
我们将向您展示如何使用星号 (*) 的示例:
- 将 (*) 放在末尾可显示所有以 pr* 开头的邮箱
- 插入两个星号以显示包含这些字母 *pr* 的所有邮箱
- 将 (*) 放在开头可显示以 *pr 结尾的所有邮箱
4. 插入project* 以显示所有以project 名称开头的邮箱。
PS C:\scripts\.\MailboxSizeReport365.ps1
Mailbox Size Report 365
----------------------------
1.Export to CSV File (OFFICE 365)
2.Enter the Mailbox Name with Wild Card (Export) (OFFICE 365)
Choose The Task: 2
Enter the Path of CSV file (Eg. C:\DG.csv): C:\temp\report365project.csv
Enter the Mailbox name or Range (Eg. Mailboxname , Mi*,*Mik): project*
邮箱大小报告 365 PowerShell 脚本将开始扫描所有邮箱。完成后,您可以退出脚本。
检查列表是否成功导出到 CSV 文件。转到路径 C:\temp\ 并找到 report365project.csv 文件。
5. 使用 Excel 打开 Microsoft 365 报告 CSV 文件
按照以下步骤将所有 CSV 数据加载到 Microsoft Excel 中:
- 打开 Microsoft Excel 并选择新建空白工作簿
- 单击数据>来自文本/CSV
- 查找并选择report365.csv 文件
- 点击导入
- 检查所有列并单击加载
注意:如果您没有许可证,则无法找到该邮箱,因为它不会显示非活动邮箱。先分配许可证,然后才能获取邮箱。
- Microsoft Excel 加载 CSV 文件中的数据并设置其格式
- 单击第一行中的箭头对列进行排序和过滤
导出 Microsoft 365 邮箱大小报告很容易,您还可以删除不必要的信息。
了解更多:导出 Microsoft 365 用户许可证 »
结论
您了解了如何使用 PowerShell 在 Exchange Online 中导出 Microsoft 365 邮箱大小报告。使用 MailboxSizeReport365.ps1 PowerShell 脚本列出所有邮箱的邮箱大小数据。此脚本显示每个邮箱的信息,例如存储使用情况、项目大小和已删除项目大小。
您喜欢这篇文章吗?您可能还喜欢如何将 Microsoft 365 密码设置为永不过期。不要忘记关注我们并分享这篇文章。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag