0

On Exchange 2003 I can run the following code.

Using VB6 and 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

I get:

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

However I'm trying to run it on Exchange 2010 but I'm getting an error,

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

The exception is being thrown just in the reference to the root folder, nfo.RootFolder.Name.

Is this property not supported on 2010?

Any advice is welcome, Thanks.

m0dest0
  • 803
  • 4
  • 16
  • 33

2 Answers2

1

Arw you sure your Exchange 2010 actually has the PF store? Try to access the default store first (e.g. read the Inbox folder name) before looping through the stores - that will cause CDO 1.21 to hit the server and realize that there is no PF store.

Dmitry Streblechenko
  • 56,873
  • 3
  • 44
  • 75
0

@Dmitry Streblechenko was right, I just added PFs and it worked.

New-PublicFolderDatabase "Public Folders" -Server $MyServer
Mount-Database "Public Folders"
m0dest0
  • 803
  • 4
  • 16
  • 33