2010-12-14 12 views
3

Outlookフォルダが公開されているかどうかを判断する方法が必要です。 Microsoft.Office.Interop.Outlookというプロパティがあると思われますが、それを行うことはできますが、見つけることはできません。Outlookフォルダが公開されているかどうかを確認するにはどうすればよいですか?

+0

Outlookフォルダには「パブリック」プロパティはありませんが、アクセス許可はあります。それはあなたの後のことですか? –

+2

パブリックフォルダは交換の対象です。 Outlook OMでアクセスできるかどうかは不明です。 EWS(Exchange Web Service)がパブリックフォルダへのアクセスを許可していることは確かです。 – RedDeckWins

答えて

0

Exchange Webサービス、特にFindFolder操作が必要です(一部のMSDNの説明については、hereまたはhereを参照してください)。

見た目からは、@RedDeckWinsのように、フォルダが "public"かどうかを特定する特定のプロパティはありません。

UPDATE

あなたが具体的に、このために、管理のC#を使用する必要はありません場合は、(hereこれをチェックしてください)PowerShellのコマンドレット所を使用することができます。具体的には、このコマンドが役に立つかもしれません:

Get-PublicFolder -Recurse | Format-List Name 

PowerShellは、それ自体で使用するのは簡単ですが、あなたのコードが実行されているサーバーは、それがインストールされている場合、それはまた、最も近代的なため(これは、C#のから呼び出すことができますボックス、必要があります)。

あなたはこのStackOverflowの質問を見てみましょう、C#に限らしている場合:あなたが質問にフォルダに関連付けられIMsgStoreインタフェースであることを行う方法(申し訳ありませんが、アイデアで得ることができる場合List of email address to public folders in exchange

+0

私は、フォルダを列挙して連絡先を取り出したいが、ローカルのものだけを取り出し、交換サーバーの連絡先は取り出しない。連絡先が列挙されたときに連絡先がExchangeサーバー上でローカルかリモートかを判断する良い方法が見つからないことは奇妙に思えます。 –

+0

私の更新を見てください。あなたはC#に限定されていますか、Powershellを使用できますか? Exchangeに含まれるツールは、ここで大きく役立ちます。 – karlgrz

+0

@Greg:私の答えの更新を見てください:あなたのプライマリメールボックス(*パブリックのものではない)内の連絡先フォルダだけを望むならば、単に彼らの 'StoreID'を比較するか、単に検索をローカルストアに限定してください。 –

1

純粋なC# - 私はRedemptionをお勧めします)pbExchangeProviderPublicGuidかどうかを確認するためにPR_MDB_PROVIDERプロパティを照会することができます。

更新 KGの答えにあなたのコメントに基づいて:

あなたは、あなたのプライマリメールボックス内にある連絡先を除外するだけで、あなたのデフォルトの受信トレイフォルダのそれで自分のStoreIDを比較したい場合は - 「または単にドン他のストアのフォルダを列挙して始めます。

関連する問題