Apologies if this is something obvious but I'm trying to get the full folder path from an EWS Powershell script. I call the PR_Folder_Path extended property but it always returns: {MapiType: String Tag: 26293 }
The code is:
Function SearchFolder( $FolderId ) { # Bind to the folder and show which one we are processing $folder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service,$FolderId) $PR_Folder_Path = new-object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(26293, [Microsoft.Exchange.WebServices.Data.MapiPropertyType]::String) # Search the folder for any matching items $pageSize = 500 # We will get details for up to 500 items at a time $offset = 0 $moreItems = $true # Perform the search and display the results while ($moreItems) { $searchFilter = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.ItemSchema]::ItemClass, $MessageClass) $view = New-Object Microsoft.Exchange.WebServices.Data.ItemView($pageSize, $offset, [Microsoft.Exchange.WebServices.Data.OffsetBasePoint]::Beginning) $view.PropertySet = New-Object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::IdOnly, [Microsoft.Exchange.WebServices.Data.ItemSchema]::ItemClass, [Microsoft.Exchange.WebServices.Data.ItemSchema]::Subject, [Microsoft.Exchange.WebServices.Data.ItemSchema]::DateTimeCreated) $view.Traversal = [Microsoft.Exchange.WebServices.Data.ItemTraversal]::Shallow $results = $service.FindItems( $FolderId, $searchFilter, $view ) $lastRow = $ws.cells.Range("A1048576").End($xlup).row $lastRow++ Write-Host $pr_folder_path " - " $folder.displayname " - " $folder.folderclass " - " $folder.totalcount " - " $results.totalcount " - " $folder.unreadcount $cells.item($lastrow,1)=$folder.displayname $cells.item($lastrow,2)=$folder.folderclass $cells.item($lastrow,3)=$folder.totalcount $cells.item($lastrow,4)=$results.totalcount $cells.item($lastrow,5)=$folder.unreadcount $moreItems = $results.MoreAvailable $offset += $pageSize } # Now search subfolders $view = New-Object Microsoft.Exchange.WebServices.Data.FolderView(500) ForEach ($subFolder in $folder.FindFolders($view)) { SearchFolder $subFolder.Id } }Note: some of the code comes from the following script - http://blogs.msdn.com/b/emeamsgdev/archive/2013/06/25/powershell-search-mailbox-for-items-of-a-particular-message-class-itemclass.aspx