msExchRecipientTypeDetails

Seit Exchange 2007 gibt es einige neue Felder im Active Directory. Das Feld "msExchRecipientTypeDetails" ist z.B. dafür zuständig, die verschiedenen Empfängertypen zu differenzieren, die Exchange 2007 neu anbietet.

Einmal neugierig geworden habe ich natürlich gleich nachschauen müssen, woran Exchange 2007 denn diese Mailboxtypen fest macht. Die entsprechenden  AD-Felder waren schnell gefunden und ein bisschen spielen mit den Werten brachte interessantes zu Tage. Die Exchange Management Shell kennt und zeigt noch weit mehr Typen ab, die aber noch nicht verwendet werden. Zumindest habe ich sie noch nicht gesehen.

Bitte ändern Sie nicht selbst diese Felder. Ich mache solche untersuchungen in streng abgeschirmten TestUmgebungen, die ich einfach wieder auf den Startwert setzen kann. In Produktion ist dies nicht ratsam

Hinweis:
Ich habe schon fehlerfreie Objekte bei Kunden gesehen, bei denen nicht alle Werte gesetzt waren. Insbesondere msExchRecipientTypeDetails scheint manchmal leer zu sein und nur msExchRecipientDisplayType gesetzt. Ich hatte auch unstimmige Objekte, z.B. dass der msExchRecipientDisplayType = 1 (UserMailbox) und msExchRecipientTypeDetails  =1073741833 (group) war.

if (msExchRecipientDisplayType -ne $null) {
   # werte Empfänger anhand msExchRecipientDisplayType aus
}
else {
   # werte Empfänger anhand msExchRecipientTypeDetails aus
}

Hier die Liste der von mir ermittelten Postfachtypen.

Typ msExchRecipientDisplayType msExchRecipientTypeDetails

Mailbox user / userMailbox

1073741824

1

Linked

1073741824

2

Shared

1073741824

4

Exchange 2003 Legacy

Nicht Vorhanden

8

MailUser (AD-User mit Kontakt)

6

nicht gesetzt

Room

7

16

Equipment

8

32

Mail Contact

6

64

Mail user

 

128

Mail universal Distribution Group

1

256

Mail non universal Group

 

512

Mail universal Security Group

1073741833

1024

Dynamic Distribution Group

3

2048

Mail-Enabled Public Folder

2

4096

System Attendant Mailbox

 

8192

Mailbox Database Mailbox

 

16384

Across Forest Mail Contact (Durch MIIS genutzt)

 

32768

User

 

65536

Contact

 

131072

Universal Distribution Group

 

262144

Universal Security Group

 

524288

Non-Universal Group

 

1048576

Disabled user

 

2097152

Microsoft Exchange

 

4194304

Microsoft Exchange

 

8388608

DiscoverySearchMailbox

 

536870912

Organization

4

 

PrivateDistributionGroup

5

 

SystemMailbox oder FederationMailbox

10

 

Interessant sind z.B. "Across Forest Mail Contact" oder auch die Gruppen, die anscheinend nicht zwingend Mailenabled sind. Weitere Informationen hierzu habe ich aber nicht.

Achtung:
Allein das ändern dieser Felder bewirkt nicht automatisch, dass sich der Postfachtyp komplett ändert. Aus einer Mailbox kann man nicht einfach einen Kontakt machen

Anstelle das Active Directory direkt selbst auszulesen, sollten Sie besser mit "Get-Recipient" und entsprechenden Filtern arbeiten. Wer aber dennoch z.B. aus Performancegründen, selbst per ADSI arbeitet, kann folgende Funktion nutzen:

function get-recipienttype  {
       param ($value)
 
       switch ($value) {
             $null        {"noExchange"}
             1            {"UserMailbox"}
             2            {"Linked"}
             4            {"Shared"}
             8            {"Exchange2003Legacy"}
             16           {"Room"}
             32           {"Equipment"}
             64           {"MailContact"}
             128          {"MailUser"}
             256          {"MailUniversalDistributionGroup"}
             512          {"MailnonUniversalGroup"}
             1024         {"MailUniversalSecurityGroup"}
             2048         {"DynamicDistributionGroup"}
             4096         {"MailEnabledPublicFolder"}
             8192         {"SystemAttendantMailbox"}
             16384        {"MailboxDatabaseMailbox"}
             32768        {"AcrossForestMailContact"}
             65536        {"User"}
             131072       {"Contact"}
             262144       {"UniversalDistributionGroup"}
             524288       {"UniversalSecurityGroup"}
             1048576      {"NonUniversalGroup"}
             2097152      {"DisabledUser"}
             4194304      {"MicrosoftExchange"}
             8388608      {"MicrosoftExchange"}
             default      {"unknown:$value"}
       }
}

msExchVersion

Interessant für Migrationen ist auch das Feld msExchVersion, welche seit Exchange 2007 vorhanden ist. Diese Feld ist ein Hinweis auf die Version des Postfachs und wird durch Set-Mailbox bzw. der Migration gesetzt. Folgende Werte kenne ich bislang:

Exchange Version Wert von msExchVersion

Exchange 2000/2003

nicht vorhanden

Exchange 2007

4535486012416

Exchange 2010

44220983382016

Diese Feld ist z.B.: nützlich, wenn sie per Veröffentlichung abhängig von der Postfachversion URLs bereit stellen wollen. Diverse Firewalls und Portallösungen können nämlich abhängig von Gruppenmitgliedschaften oder LDAP-Feldinhalten unterschiedliche Applikationen bereit stellen.

Weitere Links