アクセス許可の変更など、Exchangeパブリックフォルダーで手順を実行する必要があるが、パブリックフォルダーへのフルパス(ほとんどのパブリックフォルダーコマンドの-identityパラメーターで必要)がない場合、どうすればよいですか。その完全なパスを取得しますか?
私が見つけたいくつかのリソースは、Powershell get-publicfolder -recurse
と結果のフィルタリングを行いますが、何千ものパブリックフォルダーがある大規模な組織では、コマンドが完了すると、何時間もかかることがあります。
私はこれに何度も遭遇しました、そしてそれはイライラさせられました。多くの場合、私はそのフォルダーに接続しているユーザーからフルパスを取得するために嫌がらせをしています。一度か二度私はそれを手放し、「フルパスなしではそれはできない」と言っただけです。
しかし、結果を返すために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
私はテストしましたが、これはパブリックフォルダーのメールが有効かどうかに関係なく機能します。複数のパブリックフォルダーが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
他の誰かが同じフラストレーションに遭遇した場合に備えて、私は共有したいと思いました。これはExchange 2010で機能します。
これは、Exchange 2013以降では機能しません。これを書いている時点(2019年8月)では、get-publicfolder -recurse
コマンドレットをフィルター処理せずにパブリックフォルダーのパスを簡単に取得する他の方法はないようです。
PowerShellの場合:
$mailpf = Get-MailPublicFolder "yourEmailHere"
Get-PublicFolder $mailpf.EntryID
これを行うと、さらに簡単になります。
Get-MailPublicFolder "PublicFolderName" | Get-PublicFolder
出力は次のようになります。
Name Parent Path
---- -----------
PublicFolderName \ParentFolderName
うまくいきません。私にとっては、このコマンドを使用すると機能します:
Get-PublicFolder -Recurse | where {($_.MailEnabled -eq $True)}
これを使って
Get-PublicFolder -Recurse -ResultSize unlimited |ここで、name -match "publicfoldername"