Retention: Which Retention Policy Tag is applied to message - EWS way

In my last post I showed how to check which Retention Policy Tag is applied to the item within user's mailbox. In this post I'm going to show how same information can be checked using EWS. Compared to Get-StoreQuery way, using EWS is more convenient if you are using Office 365 mailboxes since you won't have access to Get-StoreQuery command .

In this demonstration I'll use EWS PowerShell module I wrote while back. Module is still under developement. Please note, using commands and modules from this post are at your own risk.

Download and install module:

 Invoke-Expression -Command (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/IvanFranjic/XEws/master/InstallXEwsModule.ps1")

Create Ews session:

 Import-EwsSession -EmailAddress "user@domain.com" -Password (ConvertTo-SecureString -AsPlainText -Force -String "pass") -EwsEndpoint "https://mail.domain.com/ews/exchange.asmx"

( If you omit parameter -EwsEndpoint, autodiscover will be used for locating correct endpoint )

Retreive message from desired folder and get retention tag:

 $folder = Get-EwsFolder -FolderName "MyStuff"
Get-EwsItem -FolderRoot $folder.Id | select ConversationTopic, *Archive*, *Retention*
 
ConversationTopic ArchiveTag                           RetentionDate
----------------- ----------                           -------------
Important report  3afbf723-8f69-4a3d-8fdf-7254278dd560 3.5.2016. 12:43:20
Retention tag     3afbf723-8f69-4a3d-8fdf-7254278dd560 1.5.2016. 14:22:50
  
    
Get-RetentionPolicyTag 3afbf723-8f69-4a3d-8fdf-7254278dd560
 
Name                      Type                      Description
----                      ----                      -----------
Personal 60 Day Archive   Personal                  Managed Content Settings

Ews call returns .Net guid representation of the tag so result can be feeded directly in Get-RetentionPolicyTag Exchange cmdlet.