' Code: Dmitry Stremkouski ' Date: 17.11.2006 ' License: GPL ' Usage: objectURL PostmasterLogin PostmasterPassword ' example: ' cscript //nologo ListEmailsForFolder.vbs http://ex-2/exchange/testuser/Inbox/ superv1sor myPassw0rd ' note: ' ex-2 must be Exchange server, ex-2 must contain testuser's mailbox. ' superv1sor ought have access rights to testuser's mailbox ' Get command line arguments. Dim obArgs Dim cArgs Set obArgs = WScript.Arguments cArgs = obArgs.Count Main Sub Main() On Error Resume Next sUrl = obArgs.Item(0) ListIt(sUrl) End Sub Public Sub ListIt(sUrl) Dim oXMLHttp Dim oXMLDoc Dim oXMLHREFNodes Dim oXMLHasSubsNodes Dim sQuery Set oXMLHttp = CreateObject("Microsoft.xmlhttp") If Err.Number <> 0 Then WScript.Echo "Error Creating XML object" WScript.Echo Err.Number & ": " & Err.Description Set oXMLHttp = Nothing End If ' Open DAV connection. oXMLHttp.open "SEARCH", sUrl, False, obArgs.Item(1), obArgs.Item(2) If Err.Number <> 0 Then WScript.Echo "Error opening DAV connection" WScript.Echo Err.Number & ": " & Err.Description Set oXMLHttp = Nothing End If ' Set up query. sQuery = "" sQuery = sQuery & "" sQuery = sQuery & "" sQuery = sQuery & "SELECT ""DAV:displayname"", ""DAV:href"", ""urn:schemas:httpmail:datereceived"" " sQuery = sQuery & " FROM SCOPE('shallow traversal of """ & strFolderURL & """')" sQuery = sQuery & " WHERE ""DAV:isfolder"" = False AND " sQuery = sQuery & """DAV:ishidden"" = False" sQuery = sQuery & "" sQuery = sQuery & "" ' Set request headers. oXMLHttp.setRequestHeader "Content-Type", "text/xml" oXMLHttp.setRequestHeader "Translate", "f" oXMLHttp.setRequestHeader "Depth", "0" oXMLHttp.setRequestHeader "Content-Length", "" & Len(sQuery) ' Send request. oXMLHttp.send sQuery If Err.Number <> 0 Then WScript.Echo "Error Sending Query" WScript.Echo Err.Number & ": " & Err.Description Set oXMLHttp = Nothing End If ' Load XML. Set oXMLDoc = oXMLHttp.responseXML Set oXMLHREFNodes = oXMLDoc.getElementsByTagName("a:displayname") Set oRecord = oXMLDoc.getElementsbyTagName("d:datereceived") ' for DAV:href if nessesary could be accessed by ("a:href"), not now. WScript.Echo "For URL: [" & sUrl & "]" WScript.Echo ' Loop through the nodes. For iM = 0 to oRecord.Length - 1 WScript.Echo "Name: [" & oXMLHREFNodes.Item(iM).nodeTypedValue & "]" WScript.Echo "Date: [" & oRecord.Item(iM).nodeTypedValue & "]" Next WScript.Echo WScript.Echo "~~~~~~~~~~~~~~" WScript.Echo "Total found: " & oRecord.Length ' Clean up. Set oXMLDoc = Nothing Set oXMLHttp = Nothing End Sub