如何无需CSV直接对Retention Compliance Policy获取的邮箱执行爬取
跳过CSV中转直接操作保留合规策略关联邮箱方案
不需要通过CSV文件做中间存储,直接在内存中处理合规策略返回的邮箱对象,即可完成Start-ManagedFolderAssistant全爬取操作,全程无磁盘文件写入。
基础版本(直接对主邮箱执行)
替换变量中的策略名即可直接运行:
# 替换为实际要操作的保留合规策略名称 $LabelPolicyName = "你的目标保留合规策略名" # 直接拉取策略关联的所有Exchange邮箱位置 $mailboxList = Get-RetentionCompliancePolicy -Identity $LabelPolicyName -DistributionDetail | Select-Object -ExpandProperty ExchangeLocation # 遍历所有关联邮箱执行全爬取 foreach ($mbx in $mailboxList) { Start-ManagedFolderAssistant -Identity $mbx.Identity -FullCrawl }
适配归档邮箱的版本
如果和你原CSV流程逻辑一致,需要指定归档邮箱Guid作为操作目标,直接在循环中实时获取归档Guid即可,不需要提前导出存储,同时增加判断过滤未开启归档的邮箱避免报错:
# 替换为实际要操作的保留合规策略名称 $LabelPolicyName = "你的目标保留合规策略名" $mailboxList = Get-RetentionCompliancePolicy -Identity $LabelPolicyName -DistributionDetail | Select-Object -ExpandProperty ExchangeLocation foreach ($mbx in $mailboxList) { # 获取邮箱归档属性,使用新版EXO模块命令执行效率更高 $mbxAttr = Get-EXOMailbox -Identity $mbx.Identity -Properties ArchiveGuid # 仅对已开启归档的邮箱执行操作 if ($mbxAttr.ArchiveGuid -ne [guid]::Empty) { Start-ManagedFolderAssistant -Identity $mbxAttr.ArchiveGuid -FullCrawl } }
执行前注意
- 运行脚本前需要先连接安全与合规中心PowerShell、Exchange Online PowerShell,否则会提示命令找不到
- 如果使用旧版Exchange Online PowerShell模块,将代码中的
Get-EXOMailbox替换为Get-Mailbox即可 - 该逻辑全程在内存中处理对象,跳过CSV导出、读取的磁盘IO步骤,执行效率比原中转流程更高,也不会产生临时文件。
内容的提问来源于stack exchange,提问作者Chris Mullins
相关产品推荐
相关产品推荐

