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.
- ADSync Bidirektional
- ADSync mit Exchange
- Azure AD Connect sync: Attributes synchronized to Azure
Active Directory
https://docs.microsoft.com/de-de/azure/active-directory/hybrid/reference-connect-sync-attributes-synchronized
In dem Microsoft Dokument steht, dass das Feld msExchRemoteRecipientType nur für Objekte "User" repliziert werden:
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 On-Premises 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 |
hex Wert |
0 1 |
1 2 |
2 4 |
3 8 |
4 16 |
5 32 |
6 64 |
7 128 |
Bedeutung | Postfachtyp | Postfach | Archiv |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$Null |
$Null |
|
|
|
|
|
|
|
|
Den Wert "0" habe ich noch nicht gesehen aber viele Objekte, in denen das Feld nicht gesetzt ist ($null). Die sind alle 100% "On-Premises" |
|
|
|
1 |
0x1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Mailbox in der Cloud ohne Archiv |
Userpostfach |
Cloud |
Kein |
2 |
0x2 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
Mailbox OnPremise aber Archiv in der Cloud |
Userpostfach |
OnPremise |
Cloud |
3 |
0x3 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
Postfach und Archiv in der Cloud |
Userpostfach |
Cloud |
Cloud |
4 |
0x4 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
In die Cloud migrierte Mailbox |
Userpostfach |
Migriert |
Kein |
6 |
0x6 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
Postfach wurde migriert aber Archiv direkt in Cloud angelegt |
Userpostfach |
Migriert |
Cloud |
8 |
0x8 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
Deprovisioniertes Postfach in der Cloud |
Userpostfach |
Entfernt |
Kein |
10 |
0xa |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
ProvisionArchive, DeprovisionMailbox |
Userpostfach |
Entfernt |
Cloud |
16 |
0x10 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
DeprovisionArchive (On-Prem Mailbox) |
Userpostfach |
OnPremise |
Entfernt |
17 |
0x11 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
ProvisionMailbox, DeprovisionArchive |
Userpostfach |
Cloud |
Entfernt |
20 |
0x14 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
Postfach wurde nach Cloud migriert und Archiv wurde entfernt |
Userpostfach |
Migriert |
Entfernt |
24 |
0x18 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
DeprovisionMailbox, DeprovisionArchive |
Userpostfach |
Entfernt |
Entfernt |
33 |
0x21 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
Raummailbox wurde direkt in Cloud angelegt |
Raumpostfach |
Cloud |
Kein |
35 |
0x23 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
Raummailbox wurde direkt in Cloud angelegt mit Archiv in der Cloud |
Raumpostfach |
Cloud |
Cloud |
36 |
0x24 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
Raummailbox, die nach Cloud migriert wurde |
Raumpostfach |
Migriert |
Kein |
38 |
0x26 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
Raummailbox, die nach Cloud migriert wurde mit in Cloud angelegten Archiv |
Raumpostfach |
Migriert |
Cloud |
49 |
0x31 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
Raummailbox, die in Cloud angelegt wurde aber kein Archiv mehr hat |
Raumpostfach |
Cloud |
Entfernt |
52 |
0x34 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
Raummailbox, die nach Cloud migriert wurde aber kein Archiv mehr hat |
Raumpostfach |
Migriert |
Entfernt |
65 |
0x41 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
EquipmentMailbox, direkt in Cloud angelegt |
Raumpostfach |
Cloud |
Kein |
67 |
0x43 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
EquipmentMailbox, direkt in Cloud angelegt und Archiv direkt in der Cloud |
Equipmentpostfach |
Cloud |
Cloud |
68 |
0x44 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
EquipmentMailbox wurde zu Cloud migreirt, |
Equipmentpostfach |
Migriert |
Kein |
70 |
0x46 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
ProvisionArchive, Migrated, EquipmentMailbox |
Equipmentpostfach |
Migriert |
Cloud |
81 |
0x51 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
ProvisionMailbox, DeprovisionArchive, EquipmentMailbox |
Equipmentpostfach |
Cloud |
Entfernt |
84 |
0x53 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
Migrated, DeprovisionArchive, EquipmentMailbox |
Equipmentpostfach |
Migriert |
Entfernt |
97 |
0x61 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
In der Cloud angelegte SharedMailbox |
Shared Mailbox |
Cloud |
Entfernt |
100 |
0x64 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
Migrated, SharedMailbox |
Shared Mailbox |
Migriert |
Kein |
102 |
0x66 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
ProvisionArchive, Migrated, SharedMailbox |
Shared Mailbox |
Migriert |
Cloud |
116 |
0x74 |
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.
- Get-ADObject
https://docs.microsoft.com/en-us/powershell/module/addsadministration/get-adobject?view=win10-ps
Weitere Links
- ADSync Bidirektional
- ADSync mit Exchange
- msExchRecipientTypeDetails
-
Exchange Online Provisioning
So werden Exchange Online Postfächer mit AADConnect korrekt provisioniert - Reference to msExchRecipientDisplayType,
msExchRecipientTypeDetails and msExchRemoteRecipientType values
http://www.mistercloudtech.com/2016/05/18/reference-to-msexchrecipientdisplaytype-msexchrecipienttypedetails-and-msexchremoterecipienttype-values/ - msExchRemoteRecipientType
https://identitydude.com/2015/03/26/msexchremoterecipienttype/ - Exchange Recipient Types and Office 365 – Setting Active
Directory attribute values
https://identitydude.com/2015/03/26/msexchremoterecipienttype/ - Werte des Empfängertyps (Recipient Type Values)
https://answers.microsoft.com/de-de/msoffice/forum/msoffice_o365admin-mso_exchon-mso_o365b/werte-des-empf%C3%A4ngertyps-recipient-type-values/bc00fa11-bdfd-4bd4-9e7f-f77c6f439bbe - msExchRemoteRecipientType for remote room mailbox in Ex2016
https://techcommunity.microsoft.com/t5/Office-365/msExchRemoteRecipientType-for-remote-room-mailbox-in-Ex2016/td-p/206421 - How msExchRecipientDisplayType and
msExchangeRecipientTypeDetails Relate to Your On-Premise
http://www.iseelondoniseefrance.se/2018/08/01/how-msexchrecipientdisplaytype-and-msexchangerecipienttypedetails-relate-to-your-On-Premises/