Exchange PowerShell:导出邮箱文件夹AccessRights

时间:2017-03-10 16:01:21

标签: powershell exchange-server windows-server

使用PowerShell,我想导出特定OU中用户的Exchange环境中的所有邮箱,其中文件夹级别的用户“Default”的AccessRights级别不等于“None”。为此,我使用以下命令:

$AllMailbox = Get-Mailbox -OrganizationalUnit "DNofOU" -ResultSize Unlimited 
$ResultData = foreach ($Mailbox in $AllMailbox) 
    {
        Get-MailboxFolderPermission $Mailbox | Where-Object {$_.User -Match "Default" -AND $_.AccessRights -NotMatch "None"} | Select-Object Identity,AccessRights,@{Name="Name"; Expression={$Mailbox.Name}}
    }  
$ResultData | Export-CSV -Path C:\temp\MailboxFolderPermissions.csv

但是,运行此命令时出现以下错误:

  

无法处理参数'Identity'的参数转换。无法转换“Deserialized.Microsoft.Exc”类型的“DisplayNameOfMailbox”值   hange.Data.Directory.Management.Mailbox“键入”Microsoft.Exchange.Configuration.Tasks.MailboxFolderIdParameter“。       + CategoryInfo:InvalidData:(:) [Get-MailboxFolderPermission],ParameterBindin ... mationException       + FullyQualifiedErrorId:ParameterArgumentTransformationError,Get-MailboxFolderPermission       + PSComputerName:FQDNofExchangeServer

该环境基于使用PowerShell 2.0版的Windows Server 2008 R2服务器上的Exchange 2010。当远程连接到Exchange服务器时,也可以使用PowerShell 4.0版从Windows Server 2012 R2服务器执行此操作。

1 个答案:

答案 0 :(得分:0)

对我来说,使用对象的完整Canonical名称效果更好。 像这样:

$mailboxArray = Get-Mailbox -OrganizationalUnit "example.com/Accounts" -ResultSize Unlimited

我不确定这是否已找到答案,但我想提供一些关于如何获取组织单位中所有邮箱的意见。