Я много гуглил и искал в ServerFault руководство, и я не могу найти никаких примеров сценариев проектирования или передовых методов, или фактически какой-либо документации от Microsoft для решения этой проблемы.
У нас есть несколько почтовых ящиков, которые представляют отдел или команду (а не отдельного человека), которые будут контролироваться и обрабатываться несколькими пользователями. Под этим я имею в виду, что в зависимости от того, кто был включен в реестр, кто был назначен ответственным за ответы / действия по электронной почте для этой команды в этот день и т. Д., Разные люди будут читать сообщения в почтовом ящике, а затем классифицировать их / отмечать их как прочитанные / непрочитанные, переместите их в подпапки и т. д. Чтобы избежать дублирования работы, это должно быть видно всем, кто будет просматривать этот почтовый ящик следующим.
Вот наш текущий сценарий:
По большому счету это работает нормально. Это сложно, потому что членство пользователей в группах обновляется при входе в систему, поэтому им необходимо выйти и снова войти, чтобы получить доступ. Но вот проблемы:
Я рассматривал возможность использования общедоступных папок, но, очевидно, существует большая путаница относительно того, устарели ли они, но более конкретно относительно их наилучшего использования (я не думаю, что они применимы к моей текущей проблеме). Я также подумывал об изменении их с почтовых ящиков пользователей на общие почтовые ящики, однако эта статья в технике говорит:
Для совместной работы рекомендуется использовать почтовые ящики ресурсов или порталы Microsoft SharePoint Portal Server вместо общих почтовых ящиков.
Также много слухов идет об интеграции между Exchange и SahrePoint или о том, как SharePoint собирается заменить множество сценариев совместной работы, которые ранее использовались Exchange. Но я не могу найти четкой документации о рекомендуемом дизайне.
Итак, мой вопрос: может ли кто-нибудь указать мне на какую-либо документацию о правильном подходе к этому сценарию? Это обычное требование среди организаций, и я не могу поверить, что его где-то не учли.
Exchange и Sharepoint предоставляют инструменты; вы настраиваете их под свои нужды. Вы можете подумать, что эти потребности универсальны, и это действительно так, но вы будете удивлены, насколько они различаются между организациями, поэтому ваша конфигурация, вероятно, отличается от других. На самом деле вы сопоставляете бизнес-процессы с технологиями, и это действительно может сделать только вы. Вам нужно выяснить, что нужно вашим пользователям, и создать решение, которое им подходит. Это, вероятно, объясняет, почему вы не находите документы именно для того, что вам нужно.
Общие папки жизнеспособны для Exchange 2010 и неизвестно сколько времени. Microsoft изначально пыталась убить их, но это вызвало сильную негативную реакцию, поэтому они немного отступили. Если вы еще не используете их, было бы разумно пропустить их и найти решение, в котором вместо этого используются почтовые ящики или Sharepoint.
На самом деле у вас есть 2 варианта, как вы упомянули: использовать почтовый ящик и предоставить всем доступ или использовать сайт Sharepoint. Любой из них может работать. Вы не упоминаете, есть ли у вас Sharepoint или нет. Если вы этого не сделаете, это не так уж и важно, поэтому я бы рекомендовал придерживаться подхода вашего почтового ящика, который является распространенным решением. Очевидно, вам нужно решить свои проблемы с проблемами с разрешениями, но если это ваша единственная проблема, я бы просто сосредоточился на этой конкретной технической проблеме и нашел решение.
Я бы не стал зацикливаться на этом комментарии в документе Microsoft об использовании почтовых ящиков ресурсов или Sharepoint для совместной работы. Почтовый ящик ресурса не подходит для вашего конкретного использования, хотя Sharepoint может подойти.
Вот что я узнал об этих проблемах.
Период ожидания между их настройкой и работой связан с кеш каталога на бирже. Я нашел статью Вот который описывает это. Наше решение - установить соответствующие ожидания; мы ждем 24 часа между созданием общего почтового ящика и сообщением пользователям, что он готов.
Что касается функциональности, я до сих пор не нашел рекомендаций о том, что для этого лучше всего. Однако я обнаружил следующие два факта:
Судя по всему, вторая проблема была исправлена в последнем пакете обновления, хотя я еще не тестировал это. Кроме того, группы, которые мы сейчас создаем, являются группами рассылки с включенной безопасностью. Я создал сценарий для автоматизации всего процесса, и он работает очень хорошо. В настоящее время мы находимся в процессе переноса наших существующих общих почтовых ящиков в новые почтовые ящики, созданные с помощью этого сценария.
Ниже приведен сценарий для всех, кому интересно. Любые предложения или улучшения приветствуются.
# ===================================================================
# 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."
}
}