WebDAV

WebDav ist seit Exchange 2007 "abgekündigt", d.h. es funktioniert noch mit Exchange 2007 und die folgenden 10 Jahre aber darüber hinaus gibt es keine Zusicherung mehr.
http://blogs.technet.com/b/exchange/archive/2005/09/15/410941.aspx

Webdav funktioniert nicht mehr mit Exchange 2010. Nutzen Sie den Webservice
Entourage muss mit Exchange 2010 zwingend aktualisiert werden.

Entourage
Das Mailprogramm Entourage nutzt Webdav für den Zugriff auf Exchange. Mit Exchange 2007 kann Entourage sowohl gegen die Mailbox rolle als auch gegen des CAS-Server gehen, da bei Exchange 2007 der CAS die WebDav-Zugriffe zum Backend durchgibt und nicht per MAPI konvertiert.

Neben MAPI ist WebDAV/HTTP ein legitimer Weg auf Informationen in Exchange 2000 und Exchange 2003 zuzugreifen. Auch der Webzugriff auf ihre Mailbox macht davon regen gebraucht, aber viel mehr können über WebDAV auch Regeln und andere Dinge eingestellt werden.

Der Zugriff erfolgt dabei einfach per HTTP und kann mit dem XMLHTTP-Objekt auch aus VBScript einfach genutzt werden.

Beispiel

Folgendes kleines VBScript zeigt anhand des XMLHTTP-Objekts, wie eine Mail per Outlook Web Access versendet werden kann.

const strusername = "domain\username"
const strPassword = "password"
const strServer = "password"
const strTo = "username@example.com"
const strSubject = "Testmail"
const strbody ="Dies ist der Body"
StrXml = ""
StrXml =  "Cmd=send" & vbLf _
		& "MsgTo="& strTo & vbLf _
		& "urn:schemas:httpmail:importance=1" & vbLf _
		& "http://schemas.Microsoft.com/exchange/sensitivity-long=" & vbLf _
		& "urn:schemas:httpmail:subject=" & strSubject& vbLf _
		& "urn:schemas:httpmail:htmldescription=<!DOCTYPE HTML PUBLIC " _
		& """-//W3C//DTD HTML 4.0 Transitional//EN"">" _
		& "<HTML DIR=ltr><HEAD><META HTTP-EQUIV" _
		& "=""Content-Type"" CONTENT=""text/html; charset=utf-8""></HEAD><BODY>" _
		& strbody _
		& "</BODY></HTML>" & vbLf
Set ObjxmlHttp = CreateObject("Microsoft.XMLHTTP")
ObjxmlHttp.Open "POST", "http://" & strServer & "/exchange/"& strUsername &"/Postausgang", _
                   False, Strusername, Strpassword
ObjxmlHttp.setRequestHeader "Accept-Language:", "en-us"
ObjxmlHttp.setRequestHeader "Content-type:", "application/x-www-UTF8-encoded"
ObjxmlHttp.setRequestHeader "Content-Length:", Len(xmlstr)
ObjxmlHttp.Send szXml
Wscript.echo ObjxmlHttp.responseText

Das Script erzeugt den passenden POST-Request um eine Mail im Postausgang zum Versand abzulegen. Ehe Sie das Script einsetzen, müssen Sie aber sicherstellen,  dass der Benutzername, Servername, Empfänger und Kennwort stimmt.

Beispiel: Ordnergröße

Mein Kollege Henning Krause (www.infinitec.de) hat mir ein weiteres Beispielskript überlassen, um per WebDav die Ordnergröße zu ermitteln. Es wird einfach mit folgender Befehlszeile gestartet

cscript foldersize.vbs http://myserver/myfolder <benutzername> <passwort>

Hier der Beispielcode

option explicit

dim xmlhttp, xmldoc, strrequest, ie

strrequest = "<?xml version=""1.0"" ?> " &_
    "<D:propfind xmlns:D=""DAV:"" xmlns:E=""http://schemas.microsoft.com/exchange/"">" &_
    "<D:prop><E:foldersize /></D:prop></D:propfind>"

Set xmlhttp = CreateObject("msxml2.xmlhttp")
Set xmldoc = CreateObject("Msxml2.DOMDocument")

xmldoc.loadXML(strrequest)
wscript.echo "Retrieving " & wscript.Arguments(0) & "..."
xmlhttp.Open "PROPFIND", wscript.Arguments(0), false, wscript.Arguments(1), wscript.arguments(2)
xmlhttp.setRequestHeader "Content-type:", "text/xml"
xmlhttp.setRequestHeader "Depth", "0"
xmlhttp.send strrequest
wscript.echo "Return status: " & xmlhttp.status & " " & xmlhttp.statustext
set xmldoc = xmlhttp.responseXml

xmldoc.setProperty "SelectionNamespaces", "xmlns:ex='http://schemas.microsoft.com/exchange/'"

wscript.echo "Size of folder: " & xmldoc.selectSingleNode("//ex:foldersize").text & " Bytes"

WebDav und Exchange 2007

Auch Exchange 2007 bietet weiterhin die "WebDAV Schnittstelle für den Zugriff mit solchen Clients an. Die Funktion wird aber nicht über die CAS-Rolle abgedeckt, sondern durch den Mailboxserver selbst bedient. Dies ist einer der wenigen Fälle, in denen ein Exchange 2007 CAS-Server weiterhin wie ein Exchange 2003 Frontend Server nur als Reverse Proxy zum "richtigen" Mailboxserver dient.

Natürlich darf in diesem Fall auf dem Mailbox Server kein SSL erzwungen werden, da Sie ansonsten keinen Zugriff über den CAS-Server auf die WebDAV-Schnittstelle erhalten.

WebDav und IIS7

Während "WebDav" sowohl in Exchange 2000/2003 als auch Exchange 2007 für den Zugriff auf Informationen in den Datenbanken genutzt werden kann und auch ohne Exchange durch die Installation der früheren "Frontpage Extensions" ein IIS5/6 WebDAV-tauglich gemacht werden konnte, ist das mit dem IIS7 von Hause aus nicht mehr möglich.

Erst ein Zusatzmodul, welches Sie erst herunterladen und installieren müssen, aktiviert WebDAV auf dem IIS7.

IIS7 WebDav AddOn 32bit http://go.microsoft.com/fwlink/?LinkId=105144
IIS7 WebDav AddOn 64bit http://go.microsoft.com/fwlink/?LinkId=105145
Hotfix: 955137 A hotfix rollup is available für the out-of-band WebDAV module für IIS 7.0

Zusätzlich sind Konfigurationseinstellungen erforderlich, die im IIS7-Blog aber gut beschrieben sind:

Danach können Sie aber sogar ein Laufwerk mit dem WebDAV-Dienst verbinden:

net user * http://servername

Damit wird ihr Dateiserver quasi auch aus dem Internet per HTTP (besser https verwenden) erreichbar. Damit die Sicherheit nicht allzu stark leidet, akzeptiert die WebDAV-Erweiterung Klartext Kennwort (Basic Auth) nur bei aktivierter SSL-Verschlüsselung. Ohne SSL können Sie sich nur über NTLM anmelden, was zumindest die Anmeldedaten schützt, aber nicht die Inhalte verschlüsselt. Ich würde daher nie ohne SSL arbeiten.

Weitere Links

Hier nur eine kleine Auswahl von Links. Die MSDN-Seite ist sicher die beste Quelle.