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

Tho*_*mas 7 public-folders exchange-2010

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

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

Tho*_*mas 6

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

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

[PS] > Get-Recipient myPublicFolder
Name                                                        RecipientType
----                                                        -------------
myPublicFolder                                              PublicFolder
Run Code Online (Sandbox Code Playgroud)

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

[PS] > Get-Recipient myPublicFolder | Get-PublicFolder | Format-List ParentPath
ParentPath : \Parent\Path
Run Code Online (Sandbox Code Playgroud)

我已经测试过,无论公用文件夹是否启用邮件,这都有效。如果多个公用文件夹与您的 get-recipient 结果匹配,则此管道将返回所有公用文件夹的父路径。

[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
Run Code Online (Sandbox Code Playgroud)

我想我会分享,以防万一其他人遇到同样的挫折。这适用于 Exchange 2010。

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


小智 5

在 PowerShell 中:

$mailpf = Get-MailPublicFolder "yourEmailHere"
Get-PublicFolder $mailpf.EntryID
Run Code Online (Sandbox Code Playgroud)