Simple EWS Script to list items in a folder or Subfolder$mailbox = Get-Mailbox %Usernameofmailboxtocheck% $mailAddress = $mailbox.PrimarySmtpAddress.ToString(); [Reflection.Assembly]::LoadFile("C:\Program Files (x86)\Microsoft\Exchange\Web Services\2.1\Microsoft.Exchange.WebServices.dll") | Out-Null $s = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2007_SP1) $s.AutodiscoverUrl($mailAddress); $MailboxRootid = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::MsgFolderRoot,$mailAddress) $MailboxRoot = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($s,$MailboxRootid) # Get Folder ID from Path Function GetFolder() { # Return a reference to a folder specified by path $RootFolder, $FolderPath = $args[0]; $Folder = $RootFolder; if ($FolderPath -ne '\') { $PathElements = $FolderPath -split '\\'; For ($i=0; $i -lt $PathElements.Count; $i++) { if ($PathElements[$i]) { $View = New-Object Microsoft.Exchange.WebServices.Data.FolderView(2,0); $View.Traversal = [Microsoft.Exchange.WebServices.Data.FolderTraversal]::Deep; $View.PropertySet = [Microsoft.Exchange.WebServices.Data.BasePropertySet]::IdOnly; $SearchFilter = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.FolderSchema]::DisplayName, $PathElements [$i]); $FolderResults = $Folder.FindFolders($SearchFilter, $View); if ($FolderResults.TotalCount -ne 1) { # We have either none or more than one folder returned... Either way, we can't continue $Folder = $null; Write-Host "Failed to find " $PathElements[$i]; Write-Host "Requested folder path: " $FolderPath; break; } $Folder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($s, $FolderResults.Folders[0].Id) } } } $Folder; } #Uncomment the two lines below if referencing a folder that is not in the WellKnownFolderNameList ( and Comment Third Line ) #$folderobject = GetFolder($MailboxRoot, "\Folder\Path\"); #$folderid = $folderobject.id $folderid = new-object Microsoft.Exchange.WebServices.Data.Folderid([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Tasks,$mailAddress) $InboxFolder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($s,$folderid) $mails = $inboxFolder.FindItems(20) foreach($Item in $mails.Items) { Write-Host $item.InternetMessageId Write-Host $item.Subject Write-Host $item.DueDate }