Quantcast
Channel: Exchange Server Development forum
Viewing all articles
Browse latest Browse all 7132

[E2007] [EWS] [PS] $PR_Folder_path not returning correct value

$
0
0

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

Viewing all articles
Browse latest Browse all 7132

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>