如果我需要在 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)}