Get-MailboxFolderStatistics ItemsInFolder还返回子文件夹计数和计数不正确

时间:2014-01-28 14:52:53

标签: powershell exchange-server exchange-server-2010

我正在使用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属性。所以这是我的问题:

  1. 如何让cmdlet仅返回所提供的根文件夹的值,
  2. 如何让它只返回用户可见的项目?

4 个答案:

答案 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服务的版本,但基本的想法是,如果你想看到最终用户所做的邮箱,请通过邮件客户端访问它,而不是查询邮箱存储。