Zum Inhalt springen
Exchange Mail Aliases auflisten

Exchange Mail Aliases auflisten

Nicht für produktiven Einsatz geeignet. Script enthält keinerlei Fehlerbehandlung. 😉
  • Script zeigt alle eingerichteten Mail Adressen eines Exchange-Servers an.
  • enthält Filter auf nur aktive Benutzer und Gruppen: (!(userAccountControl:1.2.840.113556.1.4.803:=2))
  • Daten werden via LDAP aus folgenden Feldern ausgelesen
    • mail
    • proxyAddresses
    • msExchShadowProxyAddresses
exchange_mail_aliases.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

import ldap
from pprint import pprint

LDAP_USER = '<USER>@<DOMAIN>'
LDAP_PASSWORD = '<PASSWORD>'
LDAP_SERVER = 'ldap://<LDAP_SERVER>'
LDAP_BASE = 'dc=<DOMAIN>,dc=<TLD>'

ALIASES = []

###########################################################

def add_alias(ALIAS):
  ALIAS = ALIAS.lower()
  if '@' in ALIAS:
    ALIAS = ALIAS.replace('smtp:','')
    if not ALIAS in ALIASES:
      ALIASES.append(ALIAS)

def analyze_search(LDAP_SEARCH):
  for DN,ENTRY in LDAP_SEARCH:
    if DN != None and ENTRY:
      if 'proxyAddresses' in ENTRY:
        for ALIAS in ENTRY['proxyAddresses']:
          add_alias(ALIAS)
      if 'mail' in ENTRY:
        for ALIAS in ENTRY['mail']:
          add_alias(ALIAS)
      if 'msExchShadowProxyAddresses' in ENTRY:
        for ALIAS in ENTRY['msExchShadowProxyAddresses']:
          add_alias(ALIAS)

###########################################################

LDAP = ldap.initialize(LDAP_SERVER)
LDAP.simple_bind_s(LDAP_USER,LDAP_PASSWORD)

LDAP_SEARCH = LDAP.search_s(LDAP_BASE,ldap.SCOPE_SUBTREE,'(&(|(objectClass=user)(objectClass=group))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))',['msExchShadowProxyAddresses','proxyAddresses','mail'])
analyze_search(LDAP_SEARCH)

###########################################################

ALIASES.sort()
pprint(ALIASES)
print "Count of aliases: ",  len(ALIASES)
Zuletzt aktualisiert am