[玩转系统] 使用 PowerShell 和 Graph API 报告 Exchange Online 邮箱内容
作者:精品下载站 日期:2024-12-14 04:07:27 浏览:15 分类:玩电脑
使用 PowerShell 和 Graph API 报告 Exchange Online 邮箱内容
列出邮箱项目以了解其中有什么
八月份,我写了一篇关于如何编写 PowerShell 脚本来清理邮箱的文章。我出于自己的目的编写了该脚本,以演示当您混合来自 Exchange Online 管理模块的 cmdlet 和 Microsoft Graph API 查询时它的强大功能。然而,并不是每个人都在寻找一个可以删除一堆邮件的脚本,尤其是可以处理组织中每个邮箱的脚本。有些人对任何代码(包括 Search-Mailbox cmdlet)都持谨慎态度,如果使用不正确的查询,则可能会出现意外结果。
我需要另一种方式来展示 Exchange/Graph 组合的强大功能,最终编写了一个脚本来报告邮箱内容。毕竟,每个人都喜欢报告,并且大多数人都是通过编写脚本来生成报告来开始他们的 PowerShell 编码生活,就像 Active Directory 中的所有用户帐户、Exchange 中的所有邮箱或 SharePoint 中的网站一样。那么我们就来说说如何编写一个报告邮箱内容的脚本。
为什么需要图表来报告邮箱内容?
Exchange Online PowerShell 模块包含数百个 cmdlet,允许开发人员自动执行管理操作。您可以列出租户中的邮箱并报告所有文件夹,包括它们的大小以及每个文件夹中的项目数。您甚至可以报告邮箱中的隐藏文件夹,例如 Teams 和 Yammer 等应用程序用于存储合规性记录的文件夹。但您无法报告有关文件夹中项目的任何信息。这是因为 Microsoft 设计了 Exchange Online 模块用于管理操作,而不是与邮箱内容交互。
Exchange Web 服务 (EWS) 长期以来一直是邮箱交互的指定 API。 Outlook for Mac 等客户端使用 EWS 访问 Exchange 并列出、阅读、发送消息、创建文件夹等。 EWS 是一个功能强大的 API,但需要时间来掌握,而 Microsoft 已经明确表示 Microsoft Graph API 是前进的方向。
邮箱内容脚本中的步骤
出于实际和务实的考虑,我首先重新利用了邮箱清理脚本中的一些代码。当有一些完美的代码可用时,重新创建一个轮子是没有意义的。然后我创建了代码来执行以下操作。
索要邮箱进行处理。由于某些邮箱的大小,我认为创建所有邮箱中的项目报告不是一个好主意。该脚本请求一个要处理的名称,并检查该名称以确保它是有效的邮箱。您可以使用邮箱别名、显示名称、用户主体名称或主 SMTP 地址来标识邮箱。
- 创建邮箱中所有文件夹(包括子文件夹)的列表。每个邮箱中都存在多个实用程序文件夹(例如同步问题和对话历史记录)。该脚本从要处理的文件夹列表中删除这些文件夹。数组定义要忽略的文件夹集。尽管它通常包含许多项目,但我也选择忽略“已删除项目”文件夹。您可以更新数组以确定要包含或排除的文件夹。
- 出于测试目的,我应用了一个过滤器来获取一年以上的邮箱项目。如果您想从文件夹中获取所有项目,请删除过滤器。
- 由于某些文件夹包含数千个项目,因此这通常是脚本中最长的部分。例如,根据服务负载,处理包含 10,000 个项目的文件夹最多可能需要一分钟的时间。
- 该图表以三个数组的形式返回邮件收件人信息(对于“收件人”、“抄送”和“密件抄送”收件人)。需要进行一些操作才能从阵列中提取收件人,以便更容易报告。
- 默认情况下,图形消息 API 不返回项目的大小。 Graph API 中可用的项目大小是指单值扩展属性,该属性必须显式包含在要获取的属性集中。获取扩展属性的代码稍微复杂一些,因为您必须使用具有 URL 编码的 MAPI 标识符来引用该属性。
该脚本使用已注册的 Entra ID 应用程序,该应用程序分配了 Mail.Read.All 权限。此权限允许应用程序从租户中的任何邮箱读取消息。这是应该非常小心的强大应用程序权限之一。
提取所有数据后,我使用 ImportExport PowerShell 模块将结果输出到 Excel 工作簿中(图 1)。
您可以从 GitHub 下载完整的脚本。
使用邮箱内容报告
我个人使用该报告的目的是让我能够查看文件夹的内容并选择要删除的项目。我处理此问题的方法是使用工作簿中的项目作为要删除的目标。我想保留的所有内容都会被删除,留下的项目将成为另一个脚本的输入,以从邮箱中删除这些项目。至少,理论上是这样。我还没有写第二个剧本,但我预计这不会很困难。
步骤是:
- 阅读工作簿中的项目。
- 使用为每条消息捕获的标识符来删除该消息(可能使用脚本中的代码来清理邮箱)。
- 迭代直到删除最后一项。
当然,可能需要更多代码来完善脚本,但 PowerShell 的优点之一是您可以使用相对少量的代码自动执行操作。至少,我一直这么告诉自己。
Microsoft 平台迁移规划和整合
简化迁移规划,克服迁移挑战,更快地完成项目,同时最大限度地降低成本、风险和对用户的干扰。
猜你还喜欢
- 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