Get-Contact vs Get-MailContact vs Get-Recipient

There's an old saying: "There's more than one way to skin a cat."  At the end of the day though, you're left with a dead cat.  So that's kind of a bummer.  In Exchange PowerShell, there is more than one way to get a Contact.  In fact there are three ways to do it: Get-Recipient, Get-Contact, and Get-MailContact.  Each of them returns a different set of attributes.  That's kind of a bummer as well.  So for my own edification, your reading pleasure, and future reference next time I need to remind myself, the tables below the detail which attributes are supplied by each command and whether that attribute exists in the other two commands.

This was done with Exchange Online, but it should be true of at least Exchange 2013/16 and possibly 2010.
Get-Contact In Get-MailContact In Get-Recipient
AllowUMCallsFromNonUsers FALSE FALSE
AssistantName FALSE FALSE
City FALSE TRUE
Company FALSE TRUE
CountryOrRegion FALSE TRUE
Department FALSE TRUE
DirectReports FALSE FALSE
DisplayName TRUE TRUE
DistinguishedName TRUE TRUE
ExchangeVersion TRUE TRUE
Fax FALSE FALSE
FirstName FALSE TRUE
GeoCoordinates FALSE FALSE
Guid TRUE TRUE
HomePhone FALSE FALSE
Id TRUE TRUE
Identity TRUE TRUE
Initials FALSE FALSE
IsValid TRUE TRUE
LastName FALSE TRUE
Manager FALSE TRUE
MobilePhone FALSE FALSE
Name TRUE TRUE
Notes FALSE TRUE
ObjectCategory TRUE TRUE
ObjectClass TRUE TRUE
ObjectState TRUE TRUE
Office FALSE TRUE
OrganizationalUnit TRUE TRUE
OrganizationId TRUE TRUE
OriginatingServer TRUE TRUE
OtherFax FALSE FALSE
OtherHomePhone FALSE FALSE
OtherTelephone FALSE FALSE
Pager FALSE FALSE
Phone FALSE TRUE
PhoneticDisplayName FALSE FALSE
PostalCode FALSE TRUE
PostOfficeBox FALSE FALSE
RecipientType TRUE TRUE
RecipientTypeDetails TRUE TRUE
RunspaceId TRUE TRUE
SeniorityIndex FALSE FALSE
SimpleDisplayName TRUE FALSE
StateOrProvince FALSE TRUE
StreetAddress FALSE FALSE
TelephoneAssistant FALSE FALSE
Title FALSE TRUE
UMCallingLineIds FALSE FALSE
UMDialPlan FALSE FALSE
UMDtmfMap TRUE FALSE
VoiceMailSettings FALSE FALSE
WebPage FALSE FALSE
WhenChanged TRUE TRUE
WhenChangedUTC TRUE TRUE
WhenCreated TRUE TRUE
WhenCreatedUTC TRUE TRUE
WindowsEmailAddress TRUE FALSE

Get-MailContact In Get-Contact In Get-Recipient
AcceptMessagesOnlyFrom FALSE FALSE
AcceptMessagesOnlyFromDLMembers FALSE FALSE
AcceptMessagesOnlyFromSendersOrMembers FALSE FALSE
AddressListMembership FALSE TRUE
Alias FALSE TRUE
ArbitrationMailbox FALSE FALSE
BypassModerationFromSendersOrMembers FALSE FALSE
CustomAttribute1 FALSE TRUE
CustomAttribute10 FALSE TRUE
CustomAttribute11 FALSE TRUE
CustomAttribute12 FALSE TRUE
CustomAttribute13 FALSE TRUE
CustomAttribute14 FALSE TRUE
CustomAttribute15 FALSE TRUE
CustomAttribute2 FALSE TRUE
CustomAttribute3 FALSE TRUE
CustomAttribute4 FALSE TRUE
CustomAttribute5 FALSE TRUE
CustomAttribute6 FALSE TRUE
CustomAttribute7 FALSE TRUE
CustomAttribute8 FALSE TRUE
CustomAttribute9 FALSE TRUE
DisplayName TRUE TRUE
DistinguishedName TRUE TRUE
EmailAddresses FALSE TRUE
EmailAddressPolicyEnabled FALSE TRUE
ExchangeVersion TRUE TRUE
ExtensionCustomAttribute1 FALSE TRUE
ExtensionCustomAttribute2 FALSE TRUE
ExtensionCustomAttribute3 FALSE TRUE
ExtensionCustomAttribute4 FALSE TRUE
ExtensionCustomAttribute5 FALSE TRUE
Extensions FALSE FALSE
ExternalDirectoryObjectId FALSE TRUE
ExternalEmailAddress FALSE TRUE
GrantSendOnBehalfTo FALSE FALSE
Guid TRUE TRUE
HasPicture FALSE FALSE
HasSpokenName FALSE FALSE
HiddenFromAddressListsEnabled FALSE TRUE
Id TRUE TRUE
Identity TRUE TRUE
IsValid TRUE TRUE
LastExchangeChangedTime FALSE FALSE
LegacyExchangeDN FALSE FALSE
MacAttachmentFormat FALSE FALSE
MailTip FALSE FALSE
MailTipTranslations FALSE FALSE
MaxReceiveSize FALSE FALSE
MaxRecipientPerMessage FALSE FALSE
MaxSendSize FALSE FALSE
MessageBodyFormat FALSE FALSE
MessageFormat FALSE FALSE
ModeratedBy FALSE FALSE
ModerationEnabled FALSE FALSE
Name TRUE TRUE
ObjectCategory TRUE TRUE
ObjectClass TRUE TRUE
ObjectState TRUE TRUE
OrganizationalUnit TRUE TRUE
OrganizationId TRUE TRUE
OriginatingServer TRUE TRUE
PoliciesExcluded FALSE TRUE
PoliciesIncluded FALSE TRUE
PrimarySmtpAddress FALSE TRUE
RecipientType TRUE TRUE
RecipientTypeDetails TRUE TRUE
RejectMessagesFrom FALSE FALSE
RejectMessagesFromDLMembers FALSE FALSE
RejectMessagesFromSendersOrMembers FALSE FALSE
RequireSenderAuthenticationEnabled FALSE FALSE
RunspaceId TRUE TRUE
SendModerationNotifications FALSE FALSE
SimpleDisplayName TRUE FALSE
UMDtmfMap TRUE FALSE
UseMapiRichTextFormat FALSE FALSE
UsePreferMessageFormat FALSE FALSE
UserCertificate FALSE FALSE
UserSMimeCertificate FALSE FALSE
WhenChanged TRUE TRUE
WhenChangedUTC TRUE TRUE
WhenCreated TRUE TRUE
WhenCreatedUTC TRUE TRUE
WindowsEmailAddress TRUE FALSE

Get-Recipient In Get-Contact In Get-MailContact
ActiveSyncMailboxPolicy FALSE FALSE
ActiveSyncMailboxPolicyIsDefaulted FALSE FALSE
AddressBookPolicy FALSE FALSE
AddressListMembership FALSE TRUE
Alias FALSE TRUE
ArchiveDatabase FALSE FALSE
ArchiveGuid FALSE FALSE
ArchiveRelease FALSE FALSE
ArchiveState FALSE FALSE
ArchiveStatus FALSE FALSE
AuthenticationType FALSE FALSE
Capabilities FALSE FALSE
City TRUE FALSE
Company TRUE FALSE
CountryOrRegion TRUE FALSE
CustomAttribute1 FALSE TRUE
CustomAttribute10 FALSE TRUE
CustomAttribute11 FALSE TRUE
CustomAttribute12 FALSE TRUE
CustomAttribute13 FALSE TRUE
CustomAttribute14 FALSE TRUE
CustomAttribute15 FALSE TRUE
CustomAttribute2 FALSE TRUE
CustomAttribute3 FALSE TRUE
CustomAttribute4 FALSE TRUE
CustomAttribute5 FALSE TRUE
CustomAttribute6 FALSE TRUE
CustomAttribute7 FALSE TRUE
CustomAttribute8 FALSE TRUE
CustomAttribute9 FALSE TRUE
Database FALSE FALSE
DatabaseName FALSE FALSE
Department TRUE FALSE
DisplayName TRUE TRUE
DistinguishedName TRUE TRUE
EmailAddresses FALSE TRUE
EmailAddressPolicyEnabled FALSE TRUE
ExchangeGuid FALSE FALSE
ExchangeVersion TRUE TRUE
ExpansionServer FALSE FALSE
ExtensionCustomAttribute1 FALSE TRUE
ExtensionCustomAttribute2 FALSE TRUE
ExtensionCustomAttribute3 FALSE TRUE
ExtensionCustomAttribute4 FALSE TRUE
ExtensionCustomAttribute5 FALSE TRUE
ExternalDirectoryObjectId FALSE TRUE
ExternalEmailAddress FALSE TRUE
FirstName TRUE FALSE
Guid TRUE TRUE
HasActiveSyncDevicePartnership FALSE FALSE
HiddenFromAddressListsEnabled FALSE TRUE
Id TRUE TRUE
Identity TRUE TRUE
IsValid TRUE TRUE
IsValidSecurityPrincipal FALSE FALSE
LastName TRUE FALSE
LitigationHoldEnabled FALSE FALSE
MailboxMoveBatchName FALSE FALSE
MailboxMoveFlags FALSE FALSE
MailboxMoveRemoteHostName FALSE FALSE
MailboxMoveSourceMDB FALSE FALSE
MailboxMoveStatus FALSE FALSE
MailboxMoveTargetMDB FALSE FALSE
MailboxRelease FALSE FALSE
ManagedBy FALSE FALSE
ManagedFolderMailboxPolicy FALSE FALSE
Manager TRUE FALSE
Name TRUE TRUE
Notes TRUE FALSE
ObjectCategory TRUE TRUE
ObjectClass TRUE TRUE
ObjectState TRUE TRUE
Office TRUE FALSE
OrganizationalUnit TRUE TRUE
OrganizationId TRUE TRUE
OriginatingServer TRUE TRUE
OwaMailboxPolicy FALSE FALSE
Phone TRUE FALSE
PoliciesExcluded FALSE TRUE
PoliciesIncluded FALSE TRUE
PostalCode TRUE FALSE
PrimarySmtpAddress FALSE TRUE
RecipientType TRUE TRUE
RecipientTypeDetails TRUE TRUE
ResourceType FALSE FALSE
RetentionPolicy FALSE FALSE
RunspaceId TRUE TRUE
SamAccountName FALSE FALSE
ServerLegacyDN FALSE FALSE
ServerName FALSE FALSE
SharingPolicy FALSE FALSE
ShouldUseDefaultRetentionPolicy FALSE FALSE
SKUAssigned FALSE FALSE
StateOrProvince TRUE FALSE
StorageGroupName FALSE FALSE
Title TRUE FALSE
UMEnabled FALSE FALSE
UMMailboxPolicy FALSE FALSE
UMRecipientDialPlanId FALSE FALSE
UsageLocation FALSE FALSE
WhenChanged TRUE TRUE
WhenChangedUTC TRUE TRUE
WhenCreated TRUE TRUE
WhenCreatedUTC TRUE TRUE
WhenMailboxCreated FALSE FALSE
WindowsLiveID FALSE FALSE

Labels: , ,