0

В Exchange 2003 я могу запустить следующий код.Exchange 2010 и корневые папки

Использование 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 году?

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

ответ

1

Вы уверены, что ваш Exchange 2010 фактически имеет магазин PF? Сначала попробуйте получить доступ к хранилищу по умолчанию (например, прочитать имя папки «Входящие»), прежде чем переходить через магазины - это приведет к тому, что CDO 1.21 попадет на сервер и поймет, что нет хранилища PF.

0

@Dmitry Streblechenko был прав, я просто добавил PFs, и это сработало.

New-PublicFolderDatabase "Public Folders" -Server $MyServer 
Mount-Database "Public Folders" 
Смежные вопросы