Como listar o conteúdo de uma caixa de correio do Exchange 2003

1

Tudo, estou tentando exportar uma listagem do conteúdo de caixas de correio do Exchange 2003 para um arquivo CSV. Especificamente, estou tentando recuperar o caminho da pasta, o assunto, o tamanho, o tempo recebido, o tempo de envio (opcional) e o id da mensagem (também opcional) de cada mensagem na caixa de correio de um usuário.

Eu tenho isso funcionando no Exchange 2007 e acima usando a API de serviços da Web do Exchange, mas isso não é aplicável a 2003.

O WebDAV não está habilitado no ambiente e atualmente estou trabalhando para verificar se o POP3 / IMAP está disponível. Assumindo que não é, há outra maneira de fazer isso que eu estou sentindo falta?

    
por MHGL 01.03.2012 / 04:08

1 resposta

2

Você não forneceu muitas informações sobre o acesso que você tem ao sistema ou à caixa de correio que está tentando acessar. Se você for o administrador do Exchange para esse servidor, provavelmente será mais fácil adicionar acesso de leitura para a caixa de correio em questão e usar o ExMerge para fazer uma cópia dele em outra conta ou se tiver o Access instalado como parte do Office. suite, você pode usar "Obter dados externos" no Access para sugar o email do Outlook, e o campo de data pode ser incluído. A partir do Access, você pode copiar a tabela para o Excel (ou csv) de forma muito simples.

Infelizmente, a API de serviços da web de troca NÃO funciona com o Exchange 2003 ou com o SBS.

Já que você está falando sobre 2003, você pode usar o WMI ou o powershell para fazer o que você está pensando.

Brian Desmond tem um script WMI em seu site que pode extrair esse tipo de informação. Esse script despejará um pouco de informações úteis sobre cada caixa de correio em um determinado servidor ou conjunto de servidores para um arquivo CSV, que você pode, por sua vez, importar para o Excel e criar uma planilha a partir dele. Eu normalmente importaria dados para uma tabela do SQL Server usando DTS (Data Transformation Services) se eu precisasse fazer muita computação ou mineração de dados. O Excel fica muito lento ao executar tarefas que realmente exigem um índice em muitos dados.

Observação: o script usa o WMI para obter essas informações para que o Exchange 2003 seja necessário. Somente permissões de nível do Exchange View Only são necessárias no Active Directory, no entanto, você provavelmente precisará de privleges de Administrador local em cada servidor Exchange. Eu não tenho um servidor Exchange 2003 prontamente disponível para teste e ele estava sendo executado como um administrador do Exchange Full quando ele originalmente escreveu esse script. Então use a seu próprio risco! Extraído de: link

    '==========================================================================
' NAME   : Exchange Mailbox Stats Dumper
' AUTHOR : Brian Desmond, [email protected]
' DATE   : 12/28/2005
' COMMENT: This script requires Exchange 2003. It will dump information
'           about each mailbox on the mailbox servers specified
'
'   Version     Date        Author          Note
'   -----------------------------------------------------------------
'   1.0         28Nov05     Brian Desmond   Initial Version
'   1.1         03Sep06     Brian Desmond   
'   1.2         13Dec08     Brian Desmond   Fixed array sizing bug,
'                                           Added error handling note
'                                           Added TODOs
'                                           Moved configurable items up
'==========================================================================
Option Explicit

' Note this script currently uses On Error Resume Next
' this isn't best practice - in reality this should be tightly 
' wrapped around the WMI connection logic in the loop rather
' than up here.
On Error Resume Next

' TODO: Configure this
' This is the total number of servers which you
' will specify for inventory
Const TOTAL_SERVERS = 3

Dim strComputer()
ReDim strComputer(TOTAL_SERVERS)

' TODO: Populate this array
' Enter each server name below as an entry in the array
' starting with zero
strComputer(0) = "xmb01"
strComputer(1) = "xmb02"
strComputer(2) = "xmb03"

'==========================================================================

Dim objWMIService
Dim colItems

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

Dim fil
Set fil = fso.CreateTextFile("mailboxes.txt")

Dim objItem
Dim line
Dim i

' Write a header row to the CSV
fil.WriteLine """Server"",""Storage Group"",""Mail Store"",""Mailbox GUID"",""Display Name"",""LegacyDN"",""Size"",""Item Count"",""Associated Content Count"",""Deleted Message Size"",""Date Absent"",""Storage Limit Level"""

For i = 0 To TOTAL_SERVERS - 1
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\" & strComputer(i) & _
            "\ROOT\MicrosoftExchangeV2")

    Set colItems = objWMIService.ExecQuery _
        ("Select * from Exchange_Mailbox")

    For Each objItem in colItems
        line = """" & objItem.ServerName & """"
        line = line & ","
        line = line & """" & objItem.StorageGroupName & """"
        line = line & ","
        line = line & """" & objItem.StoreName & """"
        line = line & ","
        line = line & """" & objItem.MailboxGUID & """"
        line = line & ","
        line = line & """" & objItem.MailboxDisplayName & """"    
        line = line & ","
        line = line & """" & objItem.LegacyDN & """"
        line = line & ","
        line = line & """" & objItem.Size & """"
        line = line & ","
        line = line & """" & objItem.TotalItems & """"
        line = line & ","
        line = line & """" & objItem.AssocContentCount & """"
        line = line & ","
        line = line & """" & objItem.DeletedMessageSizeExtended & """"
        line = line & ","
        line = line & """" & objItem.DateDiscoveredAbsentInDS & """"
        line = line & ","
        line = line & """" & objItem.StorageLimitInfo & """"

        fil.WriteLine line 
        'WScript.Echo line 
    Next
Next

fil.Close
Set fso = Nothing
Set objWMIService = Nothing
    
por 01.03.2012 / 04:36