msExchMailboxGUID bzw. MailboxGUID

Jeder Admin kennt die Felder "mail, MailNickName und ProxyAddresses". Aber neben der Kenntnis über TargetAddress" und LegacyExchangeDN ist auch das Wissen um das Feld msExchMailboxGUID bzw. ExchangeGUID nicht allseits bekannt und trotzdem wichtig. Diese unscheinbare Feld stellt zusammen mit dem HomeMDB-Feld die tatsächliche Verbindung zur Mailbox her. Das Feld wird oft unterschiedliche bezeichnet:

  • msExchMailboxGUID
    Feldbezeichnung im Active Directory
    Schemadefinition
  • MailboxGUID
    Bezeichnung im WMI-Provider, der aus der Datenbank die Liste der Mailboxen generiert.
  • ExchangeGUID
    Bezeichnung in der Exchange 2007 PowerShell Fehlermeldung
    ESM2007 Fehlermeldung

Die Funktion

Das Feld enthält eine lang zufällig GUID, die bei Exchange 2003 weder durch den Administrator noch den RUS angelegt wird, sondern durch den Store-Prozess beim ersten Zugriff auf die Mailbox angelegt wird.

Bei Exchange 2007 hingegen ist der Prozess anders, da hier die Exchange Management Shell bei der Konfiguration des Benutzers dieses Feld gleich mit einer (zufälligen) GUID füllen und der Store beim ersten Zugriff des Benutzers die Mailbox nicht finden und dann unter Verwendung der bereits hinterlegten GUID neu erstellt.

Mit Get-Mailbox kann die GUID einfach angezeigt werden:

[PS] C:\Windows\system32>get-mailbox fcarius | fl name,*guid*

Name                : Carius, Frank
ExchangeGuid        : e6721880-50d5-41a6-960c-6db2f5b1eb2a
ArchiveGuid         : d990201b-ce0d-40f8-a5f8-cfd674a4dabb
DisabledArchiveGuid : 00000000-0000-0000-0000-000000000000
Guid                : f2eb76c7-a3c0-4dbc-8954-6ae81669e0d1

Fehler bei fehlerhafter Anlage

Das kann zu der Problematik führen, dass in einer Exchange 2007 Umgebung ein user mit den Exchange 2003 Management Tools angelegt wird, aber mangels Exchange 2003 Server und mangels RUS dieser Benutzer für Exchange 2007 nicht sichtbar ist. Ein "Aktivieren" mit folgender Zeile zeigt das Problem:

Get-mailbox | where-object {$_.RecipientTypeDetails -ilike "Legacy*"} |
Set-Mailbox -ApplyMandatoryProperties -verbose
 
WARNING: Object msxfaq.test/TestOU/testuser3 has been corrupted and it is 
in an inconsistent state. The following validation errors have occurred:
 
WARNING: ExchangeGuid is mandatory on userMailbox.
 
VERBOSE: Set-Mailbox : Administrator Active Directory session settings are:  
View Entire Forest: 'True', Configuration Domain Controller: 'SRV01.msxfaq.test', 
 
VERBOSE: Set-Mailbox : Searching objects "msxfaq.test/TestOU/testuser3 " of
 type "ADUser" under the root "msxfaq.test/TestOU".
 
VERBOSE: Set-Mailbox : Previous operation run on domain controller 
'SRV01.msxfaq.test'.
 
VERBOSE: Set-Mailbox : Processing object "msxfaq.test/TestOU/testuser3".
Set-Mailbox : ExchangeGuid is mandatory on userMailbox.

Aus dieser Henne-Ei-Thematik kommt man nur mit einem manuellen Eingriff wieder heraus. Nur wenn das Postfach auf einem Exchange 2003 Server liegt, fixt die STORE.EXE den fehlenden Eintrag. Bei Exchange 2007 muss man selbst eine MailboxGUID erstellen und beim Objekt speicher. Das ist aber dank PowerShell und .NET relativ einfach. Das entsprechende Tool finden Sie auf MSXFAQ.DE -Fix-MailboxGuid

Weitere Links