Exchange 2010 и корневые папки

На Exchange 2003 я могу запустить следующий код.

Использование VB6 и MAPI CDO 1.2.1

Private Sub Command1_Click()
    Dim objSession As MAPI.Session
    Set objSession = CreateObject("MAPI.Session")
    strProfileInfo = myExcServer & vbLf & myExcAlias
    objSession.Logon ProfileInfo:=strProfileInfo
    For Each nfo In objSession.InfoStores
        Text1.Text = Text1.Text & "nfo.Name: " & nfo.Name & vbNewLine
        Text1.Text = Text1.Text & "nfo.RootFolder.Name: " & nfo.RootFolder.Name & vbNewLine
    Next
    Set objMessage = Nothing
    Set objInbox = Nothing
    objSession.Logoff
    Set objSession = Nothing
End Sub

Я получил:

nfo.Name: Public Folders
nfo.RootFolder.Name: IPM_SUBTREE
nfo.Name: Mailbox - pperez pperez
nfo.RootFolder.Name: Top of Information Store

Однако я пытаюсь запустить его на Exchange 2010, но я получаю сообщение об ошибке,

nfo.Name: Public Folders
Run-time error '-2147221219 (8004011D)':
[Collaboration Data Objects - [MAPI_E_FAILONEPROVIDER(8004011D)]]

Исключение создается только в ссылке на корневую папку nfo.RootFolder.Name.

Это свойство не поддерживается в 2010 году?

Любой совет приветствуется, спасибо.

2 ответа

Решение

Ты уверен, что на твоем Exchange 2010 действительно есть магазин PF? Попытайтесь сначала получить доступ к хранилищу по умолчанию (например, прочитать имя папки "Входящие") перед циклическим перемещением по хранилищам - это приведет к тому, что CDO 1.21 попадет на сервер и поймет, что хранилища PF нет.

@ Дмитрий Стребленченко был прав, я только добавил ПФ, и это сработало.

New-PublicFolderDatabase "Public Folders" -Server $MyServer
Mount-Database "Public Folders"
Другие вопросы по тегам