使用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服务器执行此操作。
答案 0 :(得分:0)
对我来说,使用对象的完整Canonical名称效果更好。 像这样:
$mailboxArray = Get-Mailbox -OrganizationalUnit "example.com/Accounts" -ResultSize Unlimited
我不确定这是否已找到答案,但我想提供一些关于如何获取组织单位中所有邮箱的意见。