2 Stimmen

Wie kann ich eine Exchange-Verteilerliste innerhalb der GAL mit .NET erstellen?

Wir müssen remote eine Exchange 2007 Verteilerliste aus Asp.Net erstellen.

Soweit ich weiß, kann man eine Verteilerliste in der GAL nur über die Verwaltungswerkzeuge für den Austausch erstellen. Gibt es eine Möglichkeit, eine Verteilerliste aus der Ferne zu erstellen, ohne diese auf unserem Webserver zu installieren? Es gibt einige Komponenten von Drittanbietern, mit denen Sie persönliche Verteilerlisten erstellen können, aber diese befinden sich nur im Kontaktordner eines Benutzers und sind nicht für alle Benutzer im Unternehmen verfügbar.

Idealerweise gäbe es eine Art Webdienstaufruf zum Austausch oder eine API, mit der wir arbeiten könnten. Das Exchange SDK bietet die Möglichkeit, Exchange-Daten zu verwalten (z. B. E-Mails, Kontakte, Kalender usw.). Eine API für die Exchange-Verwaltung scheint es nicht zu geben.

Es sieht so aus, als ob die Verteilerlisten im AD als Gruppenobjekte mit einem speziellen Exchange-Attribut gespeichert werden, aber es scheint keine Dokumentation darüber zu geben, wie sie funktionieren sollen.

Edit: Wir könnten das, was Exchange mit AD macht, rückgängig machen, aber meine Sorge ist, dass mit dem nächsten Service Pack von Exchange alles kaputt geht.

Gibt es eine API, mit der ich die Verteilerlisten in Active Directory verwalten kann, ohne über Exchange zu gehen?

1voto

Mark Allen Punkte 1173

Suchen Sie nach LDAP.NET, ich habe es nicht zur Hand, aber ich habe es schon einmal gemacht und es hat damals gut funktioniert.

Bearbeiten: Ich sollte hinzufügen, dass LDAP für Lightweight Directory Access Protocol steht.

Außerdem kann ich LDAP.NET nicht finden (ich bin neugierig geworden und habe nachgeschaut), und jetzt scheint es einen eingebauten System.DirectoryServices-Namespace zu geben, der dies für Sie erledigt.

http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/729d1214-37f5-4330-9208-bc4d9d695ad0

1voto

ballpointpeon Punkte 204

Wir hatten ein ähnliches Problem mit E-Mails, die programmatisch erstellte öffentliche Ordner aktivieren, und mussten die Eigenschaft msExchHideFromAddressLists auf dem Exchange-Systemobjekt in Active Directory festlegen...

using (DirectoryEntry LDAPConnection = new DirectoryEntry("LDAP://OURDOMAIN/CN=" + name+ ",CN=Microsoft Exchange System Objects,DC=ourdomain,DC=com"))
{
    LDAPConnection.AuthenticationType = AuthenticationTypes.Secure;
    LDAPConnection.Properties["msExchHideFromAddressLists"].Value = false;
    LDAPConnection.CommitChanges();
}

PS. Stellen Sie sicher, dass alle DirectoryEntries ordnungsgemäß entsorgt werden, sonst gehen Ihnen wahrscheinlich die Verbindungen aus, bevor die GC einsetzt, und Sie müssen am Ende den Server neu starten, um sie zu löschen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X