如何获取 Exchange 2010 中 Exchange 公用文件夹的完整父路径?

如何获取 Exchange 2010 中 Exchange 公用文件夹的完整父路径?

如果我需要在 Exchange 公用文件夹上执行某个过程(例如更改权限),但我没有该公用文件夹的完整路径(大多数公用文件夹命令的 -identity 参数中都需要该路径),我该如何获取该完整路径?

我发现的一些资源建议使用 powershellget-publicfolder -recurse并过滤结果,但是在拥有数千个公共文件夹的大型组织中,该命令可能需要数小时才能完成。

答案1

我遇到过很多次这种情况,这很令人沮丧。很多时候,我最终会骚扰连接到该文件夹​​的用户,以便从他们那里获得完整路径。有一两次我只是放手了,说“没有完整路径我做不到”。

但事实证明,get-recipient不需要完整路径即可返回结果。

[PS] > Get-Recipient myPublicFolder
Name                                                        RecipientType
----                                                        -------------
myPublicFolder                                              PublicFolder

get-publicfolder接受管道输入。因此,您可以使用以下命令检索公共文件夹的父路径(例如“\Parent\Path\myPublicFolder”):

[PS] > Get-Recipient myPublicFolder | Get-PublicFolder | Format-List ParentPath
ParentPath : \Parent\Path

我已经测试过,无论公用文件夹是否启用邮件,此方法均有效。如果多个公用文件夹与您的获取收件人结果匹配,则此管道将返回所有公用文件夹的父路径。

[PS] > Get-Recipient "marketing"
Name                                                        RecipientType
----                                                        -------------
Marketing-1                                                 PublicFolder
Marketing                                                   PublicFolder
Marketing-2                                                 PublicFolder
Marketing-3                                                 PublicFolder

[PS] > Get-Recipient "marketing" | Get-Publicfolder | fl Name,ParentPath
Name       : Marketing-1
ParentPath : \Parent\Path\Marketing
Name       : Marketing
ParentPath : \Parent\Path
Name       : Marketing-2
ParentPath : \Parent\Path\Sales
Name       : Marketing-3
ParentPath : \Parent\Path\Sales\Reports

我想分享一下,以防其他人遇到同样的挫折。这在 Exchange 2010 上有效。

这在 Exchange 2013 或更高版本中不起作用。截至撰写本文时(2019 年 8 月),似乎没有任何其他方法可以轻松检索公用文件夹的路径而无需过滤 cmdlet get-publicfolder -recurse

答案2

在 PowerShell 中:

$mailpf = Get-MailPublicFolder "yourEmailHere"
Get-PublicFolder $mailpf.EntryID

答案3

如果你这样做的话,事情会变得更加简单:

Get-MailPublicFolder "PublicFolderName" | Get-PublicFolder

输出将会像这样:

Name                                                        Parent Path
----                                                        -----------
PublicFolderName                                            \ParentFolderName

答案4

它对我不起作用。当我使用以下命令时,它起作用:

Get-PublicFolder -Recurse | where {($_.MailEnabled -eq $True)}

相关内容