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 - 查找最旧的电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
git stash drop 最旧的存储(比如最旧的 5 个存储)