Caixas de correio compartilhadas no Exchange 2010

3

Pesquisei bastante e procurei no ServerFault por orientação, e não consigo encontrar exemplos de cenários de projeto ou práticas recomendadas, ou na verdade, qualquer documentação da Microsoft sobre como abordar esse problema.

Temos várias caixas de correio que representam um departamento ou equipe (em vez de um indivíduo) que serão monitoradas e trabalhadas por vários usuários. Com isso, quero dizer, dependendo de quem foi escalado, quem foi designado como responsável por responder / enviar e-mails para a equipe naquele dia, etc., pessoas diferentes lerão as mensagens na caixa de correio e categorizá-las / marcá-las como lido / não lido, mova-os para subpastas etc. Para evitar a duplicação de trabalho, isso precisa ser visível para quem visualiza essa caixa de correio em seguida.

Este é o nosso cenário atual:

  • Criamos a caixa de correio, por exemplo [email protected]
  • Criamos um grupo de segurança local de domínio, por exemplo Acesso completo à Caixa de Correio do Team1 e conceder permissões de acesso total à caixa de correio
  • Adicionamos usuários ou grupos a este grupo

Em geral, isso funciona bem. É difícil que a associação ao grupo de usuários seja atualizada no logon para que eles precisem fazer logoff e logon para obter acesso. Mas aqui estão os problemas:

  • O tempo gasto entre essas permissões e quando elas parecem ser aplicadas é imprevisível e inconsistente. Por exemplo, se eu seguir as etapas acima (ou até mesmo adicionar alguém a um grupo que já tenha as permissões), mesmo se elas fizerem logoff / on, às vezes pode levar horas para que elas possam acessar a caixa de correio.
  • Às vezes, isso nem funciona. Os usuários só podem acessar uma caixa de correio se tiverem permissão diretamente aplicada para isso (por exemplo, a permissão do usuário é concedida às permissões na caixa de correio, e não via associação ao grupo).

Eu considerei o uso de pastas públicas, mas obviamente há muita confusão sobre se elas são obsoletas, mas mais especificamente sobre qual é o melhor uso delas (não acho que elas se aplicariam ao meu problema atual). Eu também considerei alterá-los de caixas de correio de usuário para caixas de correio compartilhadas, no entanto este artigo de technet diz:

We recommend that you use resource mailboxes or Microsoft SharePoint Portal Server portals for collaboration instead of shared mailboxes.

Há também muita agitação sobre a integração entre o Exchange e o SahrePoint, ou como o SharePoint substituirá muitos dos cenários de colaboração anteriormente abordados pelo Exchange. Mas não consigo encontrar nenhuma documentação clara sobre o que é o design recomendado.

Então, minha pergunta é: alguém pode me apontar na direção de qualquer documentação sobre qual é a abordagem correta para esse cenário? Este é um requisito comum entre as organizações e não posso acreditar que não tenha sido abordado em algum lugar.

    
por Matt 02.05.2011 / 05:11

2 respostas

1

Veja o que aprendi sobre esses problemas.

O período de espera entre configurá-los e quando eles funcionam está relacionado ao diretório cache no Exchange. Eu encontrei um artigo aqui que descreve isso. Nossa solução para isso é definir expectativas apropriadas; esperamos 24 horas entre criar a caixa de correio compartilhada e avisar aos usuários que ela está pronta.

Com relação à funcionalidade, ainda não encontrei orientação sobre qual é a melhor prática para isso. No entanto, descobri os dois fatos a seguir:

  • Criando a caixa de correio e a conta de usuário diretamente no Exchange, pois a caixa de correio compartilhada funciona de maneira muito mais confiável
  • Criar um grupo com acesso à caixa de correio e adicionar usuários a esse grupo funciona. A utilização de grupos aninhados não funciona de forma confiável

Aparentemente, o segundo problema foi corrigido no service pack mais recente, embora eu ainda não tenha testado isso. Além disso, os grupos que estamos criando agora são grupos de distribuição habilitados para segurança. Eu criei um script para automatizar todo o processo, e isso está funcionando muito bem. No momento, estamos migrando nossas caixas de correio compartilhadas existentes para novas caixas de correio criadas com este script.

Eu incluí o script abaixo para quem estiver interessado. Quaisquer sugestões ou melhorias seriam bem-vindas.

# ===================================================================
# Purpose:           Creates a shared mailbox, a group with appropriate permissions, and adds members
# Author:            Matt Goldman
# Revision:      1.0; 31/5/2011
# ===================================================================


Function ImportMembers

{

    param($csvpath,$dgalias)

    $Title = "CSV Import Options"
    $headingquery = "Please choose from the following CSV formatting options:"

    $alias = New-Object System.Management.Automation.Host.ChoiceDescription "&Alias", '
        "CSV Contains an alias column."
    $fullname = New-Object System.Management.Automation.Host.ChoiceDescription "&Full Name", '
        "CSV contains a full name column."
    $firstlast = New-Object System.Management.Automation.Host.ChoiceDescription "First and &Last Name", '
        "CSV contains a first name column and a last name column"

    $options = [System.Management.Automation.Host.ChoiceDescription[]] ($alias, $fullname, $firstlast)

    $result = $host.ui.PromptForChoice($title, $headingquery, $options, 0)

    Switch ($result)
        {
            0   {
                    # Has an alias column
                    $aliascolumn = Read-Host "Please enter the column heading for the alias column"
                    $members = Import-CSV $csvpath
                    foreach ($row in $members)
                    {
                        $member = $row.$aliascolumn
                        Add-DistributionGroupMember -Identity $dgalias -Member $member
                    }
                }
            1   {
                    # Has a full name column
                    $fullnamecolumn = Read-Host "Please enter the column heading for the Full Name column"
                    $members = Import-csv $csvpath
                    foreach ($row in $members)
                    {
                        $member = $row.$fullnamecolumn
                        Add-DistributionGroupMember -Identity $dgalias -Member $member
                    }
                }
            2   {
                    # Has a first name and a last name column
                    $firstnamecol = Read-Host "Please enter the column heading for the First Name column"
                    $lastnamecol = Read-Host "Please enter the column heading for the Last Name column"

                    $members = Import-csv $csvpath
                    foreach ($row in $members)
                    {
                        $fullname = $row.$firstnamecol + " " + $row.$lastnamecol
                        Add-DistributionGroupMember -Identity $dgalias -Member $fullname
                    }
                }
        }

    Write-Host "The following members have been added to the group:"

    Get-DistributionGroupMember $dgalias | FT -AutoSize Name

    Write-Host "Thank you for using SMBuilder."
}

Write-Host "Shared Mailbox Builder v0.1'n"
# Write-Host "Script to create a shared mailbox, create a corresponding group with appropriate permissions, and populate group membership"
# Write-Host "User-input driven"

# Create the shared mailbox

$mbname = Read-Host "Please enter a (full) name for the new mailbox (e.g. Sales Team or Emplyee Enquiries)"
$mbalias = Read-Host "'nPlease enter an alias for the new mailbox (e.g. salesteam or empenq)"

$addomain = Read-Host "'nPlease enter your Active Directory domain (NOT your SMTP domain if they are different)"

$upn = $mbalias + "@" + $addomain

$mbmessage = "'nDo you want to specify an OU for the mailbox object? (Default will be $addomain/users)"

$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", '
    "Specifies an OU."

$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", '
    "Accepts default OU."

$options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)

$result = $host.ui.PromptForChoice($title, $mbmessage, $options, 1) 

switch ($result)
    {
        0   {
                $ou = Read-Host "Please specify the Organizational Unit - $addomain/"
                $mbou = $addomain + "/" + $ou
                New-Mailbox -Name $mbname -Alias $mbalias -UserPrincipalName $upn -OrganizationalUnit $mbou -Shared | Out-Null
            }
        1   {
                New-Mailbox -Name $mbname -Alias $mbalias -UserPrincipalName $upn -Shared | Out-Null
            }
    }

Write-Host "The following mailbox has been created:"

Get-Mailbox $mbalias | FT -AutoSize Name,OrganizationalUnit

# Create the security-enabled distribution group

$dgname = Read-Host "Please enter a (full) name for the new Distribution Group (e.g. Sales Team Full Access)"
$dgalias = Read-Host "'nPlease enter an alias for the new Distribution Group (e.g. STMailBoxFA)"

$dgmessage = "'nDo you want to specify an OU for the Distribution Group? (Default will be $addomain/users)"

$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", '
    "Specifies an OU."

$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", '
    "Accepts default OU."

$options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)

$result = $host.ui.PromptForChoice($title, $dgmessage, $options, 1) 

switch ($result)
    {
        0   {
                $ou = Read-Host "Please specify the Organizational Unit - $addomain/"
                $dgou = $addomain + "/" + $ou
                new-DistributionGroup -Name $dgname -Type 'Security' -SamAccountName $dgname -Alias $dgalias -OrganizationalUnit $dgou | Out-Null
            }
        1   {
                new-DistributionGroup -Name $dgname -Type 'Security' -SamAccountName $dgname -Alias $dgalias | Out-Null
            }
    }

Set-DistributionGroup -identity $dgalias -HiddenFromAddressListsEnabled $true


Write-Host "The following Distribution Group has been created:"

Get-DistributionGroup $dgalias | FT -AutoSize Name,OrganizationalUnit   

# Apply full access and send as permissions to the group on the mailbox

Add-MailboxPermission -Identity $mbalias -AccessRights FullAccess -User $dgalias | Out-Null
Write-Host "'nFull-Access rights applied..."    

Get-Mailbox $mbalias | Add-ADPermission -ExtendedRights Send-As -User $dgalias | Out-Null
Write-Host "Send-As permission applied..."

# Populate the group

$listmessage = "'nDo you have a .csv file listing the users/groups you wish to add to this group?"

$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", '
    "Allows you to import a list of users in .csv format"
$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", '
    "Allows you to manually type in a comma seperated list of users, or skip and add them manually"

$options = [System.Management.Automation.Host.ChoiceDescription[]] ($yes, $no)

$result = $host.ui.PromptForChoice($title, $listmessage, $options, 1)

Switch ($result)
    {
        0   {
                "You wish to import from CSV..."

                $csvpath = Read-Host "Please enter the full path to your CSV file"

                ImportMembers $csvpath $dgalias
            }
        1   {
                "You do not wish to import from CSV. Thank you for using SMBuilder."
            }
    }
    
por 03.06.2011 / 07:32
3

Exchange e Sharepoint fornecem ferramentas; você os personaliza para suas necessidades. Você pode pensar que essas necessidades são universais e, de fato, elas são, mas você ficaria surpreso com o quanto elas variam entre as organizações, de modo que sua configuração provavelmente seja diferente das outras. O que você está realmente fazendo é mapear processos de negócios para a tecnologia e isso só pode ser feito por você. Você precisa descobrir o que seus usuários precisam e criar uma solução que funcione para eles. Isso provavelmente explica por que você não está encontrando documentos exatamente do jeito que você quer.

As pastas públicas são viáveis para o Exchange 2010 e para quem sabe por quanto tempo. Inicialmente, a Microsoft tentou eliminá-los, mas houve muita repercussão, então eles recuaram um pouco. Se você ainda não estiver usando, é melhor ignorá-los e encontrar uma solução que use caixas de correio ou Sharepoint.

Realmente suas 2 opções são como você mencionou: use uma caixa de correio e dê acesso a todos ou use um site do SharePoint. Qualquer um pode funcionar. Você não menciona se já possui o Sharepoint ou não. Se você não fizer isso, não é uma coisa insignificante para construir, então eu recomendo ficar com sua abordagem de caixa de correio que é uma solução comum. Obviamente, você precisa resolver seus problemas com os problemas de permissões, mas se esse é seu único problema, eu simplesmente me concentro no problema técnico específico e encontro uma solução.

Eu não ficaria obcecado com esse comentário no documento da Microsoft sobre como usar caixas de correio de recursos ou o SharePoint para colaboração. Uma caixa de correio de recursos não seria apropriada para seu uso específico, embora o SharePoint possa ser.

    
por 02.05.2011 / 09:29