Exchange 2007 - OPATH statt LDAP

Mit der Einführung des Active Directory haben immer mehr Administratoren sich mit LDAP und der Abfragesyntax beschäftigen müssen. Exchange 2000/2003 Adresslisten, Offline Adressbücher und Empfängerrichtlinien nutzen LDAP-Filter, um die Empfänger auszuwählen und zu filtern.

Exchange 2007 nutzt während der Migration weiterhin die LDAP-Filter von Exchange 2000/2003. Um aber die Adresslisten und Empfängerrichtlinien mit der Exchange 2007 Management Console bearbeiten zu können, muss man diese erst Konvertieren. Und dazu ist eine neue Filterdefinition erforderlich. Exchange 2007 nutzt dazu "OPATH".

Was ist OPATH ?

OPATH ist wieder eine neue Abfragesyntax um Filter in Exchange 2007 zu definieren. Haben sich die Administratoren erst mit der Einführung des Windows Active Directory an LDAP gewöhnen müssen, so steht nun schon wieder ein Wechsel für die Definition von Empfängerrichtlinien und Adressbüchern an.

Ziel von OPATH war angeblich eine deutlich vereinfachte und lesbare Syntax für Filter. Nun ja wer LDAP nach 7 Jahren Active Directory noch nicht gelernt hat, wird mit OPATH auch nicht lieben.

OPATH-Syntax

OPATH besteht aus dem Zugriff auf Felder und dem Vergleich mit Werten und der Kombination. All diese Ausdrücke können mit Klammern zusammengefasst werden.

Kombination

Diese Operatoren müssen mit führendem "-" angegeben werden

Operator Bedeutung
-and Die beiden Ergebnisse davor und dahinter werden UND verknüpft
-or Die beiden Ergebnisse davor und dahinter werden ODER verknüpft
-not Der Ausdruck wird negiert

Vergleichsoperatoren

Um zwei Werte zu vergleichen gibt es die folgenden Operatoren:

Operator Bedeutung
-eq  Zwei Werte müssen gleich sein (equals)
-ne Zwei Werte müssen ungleich sein (not equal)
-lt Der linke Wert ist kleiner als der Rechte (less than)
-gt Der linke Wert ist größer als der Rechte (greater than)
-like Die Werte sind "ähnlich". Hier kann dann auch mit Wildcards gearbeitet werden
-notlike Die Werte sind "ähnlich". Hier kann dann auch mit Wildcards gearbeitet werden

Verfügbare Felder

Angeblich sind alle Felder von Objekten auch per OPATH erreichbar. Das Exchange Team fordert Sie Auf, eventuell vergessene Felder zu melden (http://blogs.technet.com/b/exchange/archive/2007/01/10/432143.aspx).

Hier eine Liste der häufig genutzten Felder

LDAP OPATH
mailNickname alias
l city
Company Company
extensionAttribute1
bis
extensionAttribute15
CustomAttribute1
bis
CustomAttribute15
HomeMDB database
displayName DisplayName
proxyAddresses EmailAddresses
targetAddress ExternalEmailAddress
facsimileTelephoneNumber fax
givenName FirstName
sn LastName
memberOf MemberOfGroup
mail WindowsEmailAddress

Weitere Hinweise finden sich natürlich in der Exchange Dokumentation

Leider ist das mit der "Vollständigkeit" nicht ganz so einfach, denn es gibt durchaus Fehler, die man gerne mit einbeziehen würde, aber nicht verwendbar sind, z.B.:

Aktuell habe ich noch keine Lösung für diese Einschränkung.

Exchange Besonderheiten "IncludedRecipients"

Beim Einsatz von Exchange gibt es zusätzlich einige "vordefinierte Objekte, die in OPATH-Ausdrücken über die Option "IncludedRecipients" verwendet werden können

Werden Filter bei Powershell Commmandlets mit angegeben, so sind die Ausdrücke durch geschweifte Klammern einzufassen {}

Bei den meisten Exchange Management Befehlen geben Sie drei Parameter an

Parameter Bedeutung
RecipientContainer OU ab der die Evaluierung starten soll
IncludedRecipients Empfänger der Empfänger
OPATH Filter Weitere Filter Kriterien

Exchange Powershell und OPATH-Beispiele

Hier ein paar Beispiele, um entsprechende Adresslisten, Verteiler und Richtlinien zu setzen

New-EmailAddressPolicy
    -Name "SMTP-netatworkDE"
    -IncludedRecipients UserMailbox
    -ConditionalStateorProvince "Paderborn","Verl","Belleim"
    -EnabledPrimarySMTPAddressTemplate SMTP:@netatwork.-de

New-AddressList
    -Name NetatWork Mitarbeiter
   
-IncludedRecipients MailboxUsers
    -ConditionalCompany "Net at Work GmbH"

New-DynamicDistributionGroup
    -Name DL-NAW-Mitarbeiter
    -IncludedRecipients MailboxUsers
    -OrganizationalUnit "netatwork.de/Verteiler"
    -RecipientContainer "netatwork.de/Anwender"
    -ConditionalCompany "Net at Work GmbH"

Set-DynamicDistributionGroup
    -Name DL-UM-Anwender
    -RecipientFilter {((RecipientType -eq 'UserMailbox') -and -not(Name -like 'SystemMailbox{*') -and -not(Name -like 'CAS{*') -and (UMEnabled -eq $true))}

Es ist also gar nicht so schwer, einen OPATH Pfad zu entwickeln, der einem bisherigen LDAP-Filter entspricht.

LDAP 2 OPATH Converter

Auf der Seite "You Had Me At EHLO... : Need help converting your LDAP filters to ... (http://www.msexchangeteam.com/archive/2007/03/12/436983.aspx) bietet ein Exchange Team Mitglied sogar ein Powershell Skript an, welches aus einem gegebenen LDAP-Query einen OPATH erstellt.

Speichern Sie das Skript bitte unter dem Namen "ConvertFrom-LdapFilter.ps1", damit die Beispiele im Script auch stimmig sind. Hier ein Auszug der ersten Zeilen

# .\ConvertFrom-LdapFilter "(&(mailnickname=*))"
#
# To convert the LDAP filter on an existing address list and display the result:
#
# .\ConvertFrom-LdapFilter (Get-AddressList "My Address List").LdapRecipientFilter
#
# To convert the LDAP filter on an existing address list and update
# the address list with the new filter:
#
# Set-AddressList "My Address List" -RecipientFilter ( .\ConvertFrom-LdapFilter (Get-AddressList "My Address List").LdapRecipientFilter )

Damit sollten Sie die meisten Adresslisten und Empfängerrichtlinien bei der Migration nach Exchange 2007 konvertieren können. Lesen Sie einfach aufmerksam die Kurzanleitung am Anfang des Source Code.

Weitere Links

Keywords:Exchange2K7 Exchange 2007 OPATH LDAP