Code und Programmieren

Mit Microsoft Exchange und Outlook können Sie aber auch umfangreiche Projekte und Lösungen erschaffen, wenn Sie sich ein wenig an die Programmierung heran trauen. Sie erlauben umfangreiche eigene Erweiterungen um mehr aus dem System raus zu holen. Hierzu gehören mehrere Wege, um eigene Entwicklungen zu schreiben.

What API should I be using für new Exchange 2007 development? http://blogs.technet.com/b/exchange/archive/2007/06/04/439829.aspx
813349 Support policy für Microsoft Exchange APIs with the .NET Framework applications
Exchange Developer Roadmap
http://blogs.msdn.com/exchangedev/archive/2008/05/22/exchange-developer-roadmap.aspx
Exchange API-spotting Exchange 2010 SDK March Update
http://blogs.msdn.com/exchangedev/archive/2010/03/03/Thom-Randolph.aspx
Exchange 2013 101 Code Samples
https://code.msdn.microsoft.com/exchange/Exchange-2013-101-Code-3c38582c

Die die Entwickler rund um Exchange gibt es seit einiger Zeit sogar ein eigenes Portal:

Exchange Server Developer Center
http://msdn.microsoft.com/en-us/exchange/default.aspx
Exchange Server Protocols
http://msdn.microsoft.com/en-us/library/cc307725(EXCHG.80).aspx

Da die Seite schon recht umfangreich ist, werde ich die Seite nach und nach untergliedern, um mehr Übersichtlichkeit zu erreichen:

Hinweis: Auf der Seite Graph API beschreibe ich eine ganz neue API. die für Office 365 Dienste zukünftig eine große Bedeutung annehmen wird.

Umgebung

Klar können Sie auf der PowerShell direkt Code eintippen und mit Notepad ihre Skripte editieren. Aber ich rate ihnen dazu eine kleine Programmierumgebung nur eine Sourcecode-Versionierung zu nutzen. Es macht vieles einfacher beim Erstellen und sie kommen auch leichter wieder zu einer vorherigen Version und können Änderungen nachverfolgen. Daher lege ich ihnen die folgenden Seiten ans Herzen:

  • Visual Studio Code
    Aus meiner Sicht der aktuell interessanteste und kostenfreie Editor für Powershell und andere Sprachen, wenn Sie nicht das große Visual Studio nutzen wollen.
  • GIT und GitHub
    Es ist echt ganz einfach mit einer Versionsverwaltung zu arbeiten. Beginnen Sie möglichst früh damit
  • Git für Admins und Consultants
    Kleine Anleitung zum Einsatz von GIT auf ihrem PC
  • Azure DevOps
    Microsoft hat schon GitHub. Wozu dann noch DevOps?
  • Node.JS
    JavaScript läuft nicht nur im Browser sondern ist auch eine Serversprache

PowerShell

Zudem habe ich einen einen großen Unterbereich rund um PowerShell geschrieben.

Exchange APIs

Aber nun zu Exchange

Sonstige Informationen

  • Script oder Lösung
    Warum sind Eigenentwicklungen immer so "teuer"
  • .NET Framework
    Was verbirgt sich hinter dem Framework, welches mit Windows 2003 erst mal Furore macht aber auch auf Windows 2000 verfügbar ist.
  • .NET für Administratoren
    Wie schaffen Sie mit Visual Studio Express den Schritt weg von VBScript und Batchfile
  • Visual Studio
    Warum auch ein Admin und Consultant mit Visual Studio Bekanntschaft machen sollte
  • ASP
    Kurze Einführung und Abgesang zu ASP
  • ASP.NET
    Was es bedeutet, heute für das Web zu entwickeln.
  • ASP.NET Sitemap
    VBA-Makro zur Erstellung von ASP.NET Sitemaps aus der Frontpage Navigation
  • Regeln (Client und Server)
    Regeln werden mit Outlook erstellt und vom Server und teilweise vom Client interpretiert.
  • ADSI und das Schema
    Die "Versionsnummer" des Schema und was dahinter steckt
  • Management Programme
    Gerade zum Management von Exchange sind Schnittstellen vorhanden (LDAP, ADSI, MAPI/CDO, CDOEX, CDOEXM) um mit nahezu jeder beliebigen Sprache (Auch VBScript !) umfangreiche Veränderungen durch ein Programm zu realisieren, z.B. Benutzer anlegen etc.
  • AD LDAP-Felder
    Feldbeschreibung ausgewählter LDAP-Felder im Active Directory
  • LDAP 5.5
    So können Sie per LDAP auf das Exchange 5.5. Verzeichnis zugreifen
  • EX55 LDAPFelder
    Gastbeitrag zu den Exchange 5.5 Feldern und ihrer Erreichbarkeit per LDAP
  • Kontaktfelder
    Programmieren mit Outlook VBA und Kontakten
  • VBScript
    Was ist VBScript ?
  • XML
    Eine sehr kurze Einführung mit Beispielen und einer einfachen XMLWriter-VBScript-Klasse
  • WMI
    Verwalten von Exchange und mehr oder was kann ich mit WMI anstellen.
  • Redemption ($)
    3rd Party DLL die parallel zu Outlook und CDO einen leistungsfähigen Ersatz darstellen kann
  • VBScript Falle "ByVAL"
    VBScript ist einfach aber nicht ohne Tücken.
  • Regular Expressions
    Eine kurze Einführung am Beispiel von einer SMTP-Adressenverifikation.
  • Office Web Charts
    Kostenfreies COM-Objekt zum automatischen Erzeigen von Bildern.
  • TokenGroup
    Mitgliedschaft von Gruppen eines Benutzers schnell über Tokengroup ermitteln
  • DirSync-API
    Änderungen von Active Directory Inhalten per Software ermitteln
  • FileSystemTunnel
    Schöner Name für ein seltsames Verhalten mit dem Feld CreationTime
  • Mittelwert
    Überlegungen zu arithmetischen und einem eigenen gleitenden Mittelwert für Skripte
  • Webrequest-Tracker
    Kleine PHP-Testseite zum Analysieren von Webrequests

Beispielskripte

Teilweise habe ich diese in anderen öffentlich zugänglichen Quellen gefunden. Die Quelle ist dann natürlich angegeben.

  • VBS-Toolbox
    Eine Sammlung von Klassen, die ich in verschiedenen Skripten verwende.
  • VBS:Note2Mail
    Wie konvertiere ich Nachrichten, die "Notizen " in öffentlichen Ordner geworden sind zu Nachrichten zurück (Exchange 2000)
  • VBS:Disclaimer
    Wie können Sie allen ausgehenden Nachrichten eine Nachricht anheften ?
  • SpoofDetect
    Mails kennzeichnen, wenn diese von Extern mit einer lokalen Domäne kommen.
  • FromModify
    Absenderadresse ausgehender Mails ändern
  • SCL-Skript
    Musterskript für den Zugriff auf den SCL-Wert von IMF und weitere Aktionen
  • VBS:MakeUser
    Legt einen Exchange enabled User per WSH an
  • VBS.MakeContact
    Einen Exchange Kontakt mit VBScript anlegen
  • VBS:Eventlog Monitor
    Überwacht das Eventlog auf Fehler und schlägt Alarm
  • VBS:Send Mail
    Sendet eine Mail auf dem Server per CDO
  • VBS:AddContact
    Per VBScript einen Kontakt anlegen
  • BAT:CheckOWA
    Prüft die Erreichbarkeit und Basisfunktion von OWA
  • VBS:XMessageFlag
    Spielerei oder nützlich ? Infoleiste in Outlook steuern
  • VBS:Rights
    Rechte auf Postfächer können seit SP2 per Skript gesetzt werden
  • VBS:ADREAD
    Beispiel, wie Sie das Active Directory per WSH auslesen können
  • File:PICKUP
    Wie kann ich das PICKUP Verzeichnis zum Senden von Mails nutzen
  • VBS:MBSize
    Bestimmen der Mailboxgröße
  • Sink:MessageIDFix
    Eventscript zum fixen des Mai2004 Bugs mit überlangen MessageIDs
  • VBS:SMTPList
    Ausgeben aller SMTP-Adressen im Forrest

Skripte im Bereich Tools

Weniger als Muster, sondern zur praktischen Anwendung finden Sie im Bereich der Tools weitere Skripte.

Links von Microsoft

Weitere Links zu Exchange Skripten

Kleine Helferlein