我正在使用PowerShell将Exchange邮箱统计信息的报告作为制表符分隔的文本文件返回。我在使用ItemsInFolder
cmdlet的Get-MailboxFolderStatistics
属性时遇到问题(来自Microsoft.Exchange.Management.PowerShell.e2010管理单元)。如果我对这样的邮箱运行它:
Get-MailboxFolderStatistics myusername -FolderScope Inbox | Select ItemsInFolder
它产生以下结果:
ItemsInFolder
-------------
556
但通过Outlook查看的收件箱文件夹中的计数为 513 。我发现this TechNet article有一条说明
的说明邮箱可以包含用户永远不可见的隐藏项目,仅供应用程序使用。 Get-MailboxFolderStatistics cmdlet可以返回以下值的隐藏项:FolderSize,FolderAndSubfolderSize,ItemsInFolder和ItemsInFolderAndSubfolders。
但我相当肯定这个文件夹没有任何隐藏的项目。此外,如果我在收件箱下添加一个文件夹并将一些项目移入其中,然后再次运行cmdlet,它会报告BOTH文件夹的计数:
ItemsInFolder
-------------
547
11
我的理解是ItemsInFolderAndSubfolders
属性应该返回子文件夹的计数,而不是ItemsInFolder
属性。所以这是我的问题:
答案 0 :(得分:5)
运行此命令,而不是当前命令,并在命令的输出中查找相应的属性/值对。
Get-MailboxFolderStatistics myusername -FolderScope Inbox | Select-Object -Property *;
这将检索对象上的所有属性,并允许您找到合适的属性。
答案 1 :(得分:0)
我找到了问题第一部分的答案(如何仅为根返回值,即“收件箱”):在调用中添加| Where-Object {$_.name -eq "Inbox"}
,如:
Get-MailboxFolderStatistics myusername -FolderScope Inbox | Select ItemsInFolder | Where-Object {$_.name -eq "Inbox"}
答案 2 :(得分:0)
Roryap,您应该运行收件箱文件夹统计信息:
Get-MailboxFolderStatistics -Identity myusername -FolderScope Inbox | ?{$_.FolderPath -like '/Inbox'} | Select Name, ItemsInFolder
首先会获取邮箱的值,然后过滤到只有顶部'收件箱'文件夹(有时您可以在其他位置使用其他收件箱文件夹,即ipfx应用程序),最后获取名称和itemsInFolder。
不幸的是,这并没有解决前景和来自PS的数字不同的情况:(
答案 3 :(得分:0)
如果Get-MailboxFolderStatistics
cmdlet无法区分隐藏项和普通项,您可能需要尝试"查看"通过邮件客户端在文件夹中。我从another website获取了以下大部分代码:
$Outlook = New-Object -com Outlook.Application
$Session = $Outlook.Session
$Session.Logon()
$Inbox = $Outlook.Session.GetDefaultFolder(6)
$ItemCount = @(%{$Inbox.Items}).Count
$UnreadCount = @(%{$Inbox.Items | ?{$_.Unread}}).Count
[PSCustomObject]@{"Items"=$ItemCount;"Unread"=$UnreadCount}
我想有一个使用Exchange Web服务的版本,但基本的想法是,如果你想看到最终用户所做的邮箱,请通过邮件客户端访问它,而不是查询邮箱存储。