msExchRemoteRecipientType

Auf der Seite msExchRecipientTypeDetails habe ich schon einige Zeit dokumentiert, welche Exchange Empfänger in den beiden AD-Feldern "msExchRecipientDisplayType" und "msExchRecipientTypeDetails" wie codiert werden. Mit Office 365 gibt es natürlich noch viele weitere Typen von Objekten, von denen die meisten Einträge mit "Remote" beginnen. Aus einer lokalen Mailbox wird nach der Migration eine "RemoteMailbox" usw.

ADSync und Exchange

Sie wissen sicher schon lange, dass beim Einsatz von ADSync zur Identitätsverwaltung auch weiterhin die Exchange Verwaltung "On Premises" erfolgt. Allerdings gibt es einige Attribute, die ADSync auch wieder in das lokal AD zurück schreibt.

In dem Microsoft Dokument steht, dass das Feld msExchRemoteRecipientType nur für Objekte "User" repliziert werden:


Auszug: https://docs.microsoft.com/de-de/azure/active-directory/hybrid/reference-connect-sync-attributes-synchronized#exchange-online

Also habe ich im ADSync mit die Regeln etwas genauer angeschaut und folgende zwei Einträge gefunden:

ADSync Regel Transformations

Out to AAD - User ExchangeOnline

In from AD - User Exchange

In die Gegenrichtung aus der Cloud in das Active Directory gibt es aber keine Regeln. Das Feld wird also OnPremises gesetzt und in die Cloud repliziert. Es obliegt also den Exchange PowerShell-Commandlets das Feld korrekt zu setzen. Eventuell setzt aber auch der MRS das Feld, wenn eine Mailbox in die Cloud übertragen wird.

Das Feld ist aber schon eine sehr gute Quelle für weitere Analysen hinsichtlich der Exchange Empfänger. Lassen sich daraus doch interessant Ergebnisse herleiten.

Bedeutung der Bits

Jedes Bit hat nämlich eine eigene Bedeutung

Bit Dez Bedeutung

0

1

Postfach wurde direkt in der Cloud angelegt

1

2

Archiv wurde direkt in der Cloud angelegt

2

4

Postfach wurde in die Cloud migriert

3

8

Postfach wurde in der Cloud deprovisioniert

4

16

Archiv wurde in der Cloud deprovisioniert

5

32

Dies ist ein Raumpostfach in der Cloud

6

64

Dies ist eine Equipment Mailbox

7

128

Nicht genutzt ?

Es gibt aktuell einen Sonderfall. Wen Bit 6 und 7 gesetzt sind (92dez), dann ist es eine "Shared Mailbox" in der Cloud. Entsprechend gibt es verschiedene Kombinationen von Bits mit entsprechender Bedeutung

Allerdings habe ich kein Bit gefunden, welches für "Archiv wurde in die Cloud migriert" steht.

Wichtig: Das Feld ist nur für Objekte in Exchange Online zutreffend. Es handelt sich also immer um Objekte, die ein Postfach und/oder Archiv in Exchange Online haben.

dez
Wert
0
1
1
2
2
4
3
8
4
16
5
32
6
64
7
128
Bedeutung Postfachtyp Postfach Archiv

$Null

 

 

 

 

 

 

 

 

Den Wert "0" habe ich noch nicht gesehen aber viele Objekte, in denen das Feld nicht gesetzt ist ($null). Die sind alle 100% "OnPremises"

 

 

 

1

1

0

0

0

0

0

0

0

Mailbox in der Cloud ohne Archiv

Userpostfach

Cloud

Kein

2

0

1

0

0

0

0

0

0

Mailbox on Premise aber Archiv in der Cloud

Userpostfach

OnPremise

Cloud

3

1

1

0

0

0

0

0

0

Postfach und Archiv in der Cloud

Userpostfach

Cloud

Cloud

4

0

0

1

0

0

0

0

0

In die Cloud migrierte Mailbox

Userpostfach

Migriert

Kein

6

0

1

1

0

0

0

0

0

Postfach wurde migriert aber Archiv direkt in Cloud angelegt

Userpostfach

Migriert

Cloud

8

0

0

0

1

0

0

0

0

Deprovisioniertes Postfach in der Cloud

Userpostfach

Entfernt

Kein

10

0

1

0

1

0

0

0

0

ProvisionArchive, DeprovisionMailbox

Userpostfach

Entfernt

Cloud

16

0

0

0

0

1

0

0

0

DeprovisionArchive (On-Prem Mailbox)

Userpostfach

OnPremise

Entfernt

17

1

0

0

0

1

0

0

0

ProvisionMailbox, DeprovisionArchive

Userpostfach

Cloud

Entfernt

20

0

0

1

0

1

0

0

0

Postfach wurde nach Cloud migriert und Archiv wurde entfernt

Userpostfach

Migriert

Entfernt

24

0

0

0

1

1

0

0

0

DeprovisionMailbox, DeprovisionArchive

Userpostfach

Entfernt

Entfernt

33

1

0

0

0

0

1

0

0

Raummailbox wurde direkt in Cloud angelegt

Raumpostfach

Cloud

Kein

35

1

1

0

0

0

1

0

0

Raummailbox wurde direkt in Cloud angelegt mit Archiv in der Cloud

Raumpostfach

Cloud

Cloud

36

0

0

1

0

0

1

0

0

Raummailbox, die nach Cloud migriert wurde

Raumpostfach

Migriert

Kein

38

0

1

1

0

0

1

0

0

Raummailbox, die nach Cloud migriert wurde mit in Cloud angelegten Archiv

Raumpostfach

Migriert

Cloud

49

1

0

0

0

1

1

0

0

Raummailbox, die in Cloud angelegt wurde aber kein Archiv mehr hat

Raumpostfach

Cloud

Entfernt

52

0

0

1

0

1

1

0

0

Raummailbox, die nach Cloud migriert wurde aber kein Archiv mehr hat

Raumpostfach

Migriert

Entfernt

65

1

0

0

0

0

0

1

0

EquipmentMailbox, direkt in Cloud angelegt

Raumpostfach

Cloud

Kein

67

1

1

0

0

0

0

1

0

EquipmentMailbox, direkt in Cloud angelegt und Archiv direkt in der Cloud

Equipmentpostfach

Cloud

Cloud

68

0

0

1

0

0

0

1

0

EquipmentMailbox wurde zu Cloud migreirt,

Equipmentpostfach

Migriert

Kein

70

0

1

1

0

0

0

1

0

ProvisionArchive, Migrated, EquipmentMailbox

Equipmentpostfach

Migriert

Cloud

81

1

0

0

0

1

0

1

0

ProvisionMailbox, DeprovisionArchive, EquipmentMailbox

Equipmentpostfach

Cloud

Entfernt

84

0

0

1

0

1

0

1

0

Migrated, DeprovisionArchive, EquipmentMailbox

Equipmentpostfach

Migriert

Entfernt

100

0

0

1

0

0

1

1

0

Migrated, SharedMailbox

Shared Mailbox

Migriert

Kein

102

0

1

1

0

0

1

1

0

ProvisionArchive, Migrated, SharedMailbox

Shared Mailbox

Migriert

Cloud

116

0

0

1

0

1

1

1

0

Migrated, DeprovisionArchive, SharedMailbox

Shared Mailbox

Migriert

Entfernt

Beachten Sie, dass Sie Objekte direkt in der Cloud als "CloudOnly" anlegen können, die durch ADSync nicht in das lokale Active Directory repliziert werden und daher bei einer Auswertung unbemerkt bleiben.

Auswertung

Ich habe noch kein Commandlet in der Exchange PowerShell gefunden, welches dieses Property explizit ausliest aber das können wir per LDAP-Anfrage oder der AD-PowerShell recht einfach selbst machen. Hier ein Beispiel

Get-ADObject -LDAPFilter "(mail=*)" `
   -Properties msExchRemoteRecipientType `
| group msExchRemoteRecipientType -noelement

Count Name
----- ----
  422
   35 1
    2 2
   24 3
   72 4
    5 6
    1 20
    2 33
    9 100

Es ist gut zu sehen, dass selbst bei einer Firma mit 99% Exchange Online immer noch sehr viele Objekte diese Feld gar nicht gesetzt haben. Das ist auch verständlich, denn solange Exchange Hybrid mit einem lokalen Exchange Server installiert ist, gibt es natürlich auch Systemobjekte, Health-Maiboxen etc. Es gibt aber auch sehr viele Objekte, die zwar mit ADSync zu Exchange Online synchronisiert werden aber nie in die Cloud migriert werden. Denken Sie einfach an die ganzen E-Mail Verteilergruppen und MailContacts.

Eine komplette Liste der Benutzer mit dem Attribut msExchRemoteRecipientType aber auch den beiden anderen Attributen "msExchRecipientTypeDetails" und "msExchRemoteRecipientType" erhalten Sie einfach per Get-ADObject:

# Liste aller Objekte mit einer Mailadresse zur weiteren Auswertung
Get-ADObject -LDAPFilter "(mail=*)" -Properties mail,msExchRecipientDisplayType,msExchRecipientTypeDetails,msExchRemoteRecipientType `
| select mail,msExchRecipientDisplayType,msExchRecipientTypeDetails,msExchRemoteRecipientType `
| ft 

# Liste der Benutzer mit einer Mailadresse zur weiteren Auswertung
Get-User -LDAPFilter "(mail=*)" -Properties mail,msExchRecipientDisplayType,msExchRecipientTypeDetails,msExchRemoteRecipientType `
| select mail,msExchRecipientDisplayType,msExchRecipientTypeDetails,msExchRemoteRecipientType `
| ft 

Alternativ können Sie die Tabelle natürlich auch mit Export-CSV in eine Datei schreiben oder mit Convertto-HTML als Webseite ausgeben und so weiter verarbeiten. Genau genommen reicht es auch die Ausgabe auf die Benutzer zu beschränken.

Weitere Links