PowerShell - 查找最旧的电子邮件

Posted

技术标签:

【中文标题】PowerShell - 查找最旧的电子邮件【英文标题】:PowerShell - Find Oldest Email 【发布时间】:2022-01-09 02:59:33 【问题描述】:

我卡住了,我试图在一个人的邮箱中找到最旧的“EMAIL”,但我不知道还能尝试什么。我想我需要在某处添加 ContainerClass -eq "IPF.Note",但我不确定在哪里。

以下脚本有效,但它会找到最旧的 ITEM,在我的例子中它是一个联系人。我想分别查看每个容器(电子邮件、聊天、日历、联系人),但对于这个脚本,我只想知道最旧的电子邮件。

谢谢

Get-MailboxFolderStatistics -IncludeOldestAndNewestItems -Identity USERID | 
    Where OldestItemReceivedDate -ne $null | 
    Sort OldestItemReceivedDate | 
    Select -First 1 OldestItemReceivedDate

【问题讨论】:

-FolderScope Inbox 添加到Get-MailboxFolderStatistics 命令怎么样?见the docs 感谢您的建议,但我只对电子邮件更感兴趣。我认为我做错了什么,出于某种原因,Exchange Online 没有查看 Get-Recoverableitems。我正在使用以下脚本来测试该理论:Get-RecoverableItems -Identity USERID -FilterItemType IPM.Note |排序 -Property OldestItemReceivedDate 【参考方案1】:

您可以按商品类型过滤您拥有的商品,但我会在获取统计信息后执行此操作,因此您只需查询一次交换:

# Get the folder statistics for all folders
$stats = Get-MailboxFolderStatistics -IncludeOldestAndNewestItems -Identity $USERID

# Get the oldest email. Can re-use $stats for the other item types
$OldestEmail = $stats |
  Where-Object $_.OldestItemReceivedDate -and $_.ContainerClass -eq 'IPF.Note' |
  Sort-Object OldestItemReceivedDate |
  Select-Object ContainerClass,OldestItemReceivedDate,FolderPath -First 1

# Outputs
ContainerClass OldestItemReceivedDate FolderPath
-------------- ---------------------- ----------
IPF.Note       2/8/2016 2:07:50 PM    /Inbox    

邮箱文件夹统计命令不搜索可恢复项目by default 是正确的。它不搜索邮箱存档,除非您指定-Archive。如果您需要这些,则必须进行额外的搜索:

# Get recoverable items:
Get-MailboxFolderStatistics -Identity $USERID -FolderScope 'RecoverableItems' -IncludeOldestAndNewestItems |
  Where-Object OldestItemReceivedDate |
  Sort-Object  OldestItemReceivedDate |
  Select-Object ContainerClass,OldestItemReceivedDate,FolderPath -First 1

# Note that deleted item containers do not have an item type!
ContainerClass OldestItemReceivedDate FolderPath       
-------------- ---------------------- ----------       
               2/5/2016 3:41:33 PM    /Deletions       

【讨论】:

感谢您的帮助!我有一个后续问题。 RecoverableItems 文件夹不显示 ContainerClass。所以我不能寻找第一个“ipf.note”。我认为这是“可恢复项目”的问题。是否可以查找味精文件? @Miguel 不,不是不单独查看每个可恢复项目。文件夹本身没有类。无论如何,那里的物品通常只能保留 30 天,因此大多数人不需要详细信息。【参考方案2】:

假设这是出于合规性原因,您应该使用 Search-Mailbox cmdlet - https://docs.microsoft.com/en-us/powershell/module/exchange/search-mailbox?view=exchange-ps

在 Exchange Server 上搜索邮箱中的项目

要让 Exchange Online 在邮箱中搜索项目,您应该使用 New-ComplianceSearch cmdlet https://docs.microsoft.com/en-us/powershell/module/exchange/new-compliancesearch?view=exchange-ps

此网页显示如何按日期搜索 - New-ComplianceSearch:如何使用较新版本的 Search-Mailbox https://www.codetwo.com/admins-blog/new-compliancesearch-new-version-of-search-mailbox/

此网页有一个搜索邮箱的脚本,包括日期 PowerShell – New-ComplianceSearch 脚本,用于遍历所有邮箱,找到目标邮件并将其删除 - https://365basics.com/powershell-new-compliancesearch-script-to-go-through-all-mailboxes-find-a-target-message-and-remove-it/

使用您原来的方法,应该这样做。假设您有适当的权限。

Get-MailboxFolderStatistics -ID <mailboxemailaddress> -IncludeOldestAndNewestItems | select Identity, Name, FolderPath, ItemsInFolder, FolderSize, OldestItemReceivedDate | Export-Csv C:\temp\Mailbox.csv -NoTypeInformation

【讨论】:

以上是关于PowerShell - 查找最旧的电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

Django在数据库中找到最旧的条目

git stash drop 最旧的存储(比如最旧的 5 个存储)

查找重复的邮箱

在 find 命令中查找不支持 printf 的 AIX 系统上的前 N ​​个最旧文件

Hazelcast - 最旧的条目首先被驱逐

获取最旧的修改价格