Forskel mellem versioner af "Exchange 2010"

Fra NørderiWiki
Skift til: Navigation, Søgning
m (Flyttet lidt links)
(EMS: Wrap)
 
(43 mellemliggende versioner af den samme bruger vises ikke)
Linje 12: Linje 12:
  
 
[http://technet.microsoft.com/en-us/library/bb201691.aspx Enable Anti-Spam Functionality on a Hub Transport Server]
 
[http://technet.microsoft.com/en-us/library/bb201691.aspx Enable Anti-Spam Functionality on a Hub Transport Server]
 +
 +
./install-AntispamAgents.ps1
 +
Restart-Service MSExchangeTransport
  
 
EMS:
 
EMS:
Linje 22: Linje 25:
 
set-contentfilterconfig -SCLRejectThreshold '5' -SCLDeleteThreshold '7' -SCLDeleteEnabled $true
 
set-contentfilterconfig -SCLRejectThreshold '5' -SCLDeleteThreshold '7' -SCLDeleteEnabled $true
  
add-IPBlockListProvider -Name 'zen.spamhaus.org' -LookupDomain 'zen.spamhaus.org' -Enabled $true -BitmaskMatch $null -IPAddressesMatch @() -AnyMatch $true -Priority '1' -RejectionResponse ''
+
add-IPBlockListProvider -Name 'zen.spamhaus.org' -LookupDomain 'zen.spamhaus.org' -Enabled $true -BitmaskMatch $null -IPAddressesMatch @() -AnyMatch $true
add-IPBlockListProvider -Name 'dnsbl.sorbs.net' -LookupDomain 'dnsbl.sorbs.net' -Enabled $true -BitmaskMatch $null -IPAddressesMatch @() -AnyMatch $true -Priority '2' -RejectionResponse ''
+
-Priority '1' -RejectionResponse ''
add-IPBlockListProvider -Name 'bl.spamcop.net' -LookupDomain 'bl.spamcop.net' -Enabled $true -BitmaskMatch $null -IPAddressesMatch @() -AnyMatch $true -Priority '3' -RejectionResponse ''
+
add-IPBlockListProvider -Name 'dnsbl.sorbs.net' -LookupDomain 'dnsbl.sorbs.net' -Enabled $true -BitmaskMatch $null -IPAddressesMatch @() -AnyMatch $true
add-IPBlockListProvider -Name 'dnsbl-1.uceprotect.net' -LookupDomain 'dnsbl-1.uceprotect.net' -Enabled $true -BitmaskMatch $null -IPAddressesMatch @() -AnyMatch $true -Priority '4' -RejectionResponse ''
+
-Priority '2' -RejectionResponse ''
 +
add-IPBlockListProvider -Name 'bl.spamcop.net' -LookupDomain 'bl.spamcop.net' -Enabled $true -BitmaskMatch $null -IPAddressesMatch @() -AnyMatch $true -Priority '3'
 +
-RejectionResponse ''
 +
add-IPBlockListProvider -Name 'dnsbl-1.uceprotect.net' -LookupDomain 'dnsbl-1.uceprotect.net' -Enabled $true -BitmaskMatch $null -IPAddressesMatch @()
 +
-AnyMatch $true -Priority '4' -RejectionResponse ''
 
</pre>
 
</pre>
  
Linje 31: Linje 38:
 
Forudsætter Exchange 2010 er installeret på Windows 2008 R2 Server.
 
Forudsætter Exchange 2010 er installeret på Windows 2008 R2 Server.
 
Der bliver ikke forklaret hvorfor du skal gøre som vist, dette er kun som "vi" sætter det op og ved der virker. Hvis du vil læse lidt mere forklaring så tjek msexchange.org lidt længere nede.
 
Der bliver ikke forklaret hvorfor du skal gøre som vist, dette er kun som "vi" sætter det op og ved der virker. Hvis du vil læse lidt mere forklaring så tjek msexchange.org lidt længere nede.
 +
 +
'''Bemærk!''' Med SP1 og 2 er der kommet bedre muligheder for hosting, hosting mode og gal segmentation. Jeg har ikke selv testet dette af, da vi er gået over til [[Microsoft_Office_365|Office 365]]
  
 
Mangler:
 
Mangler:
 
*Offline Adresse Book
 
*Offline Adresse Book
 +
 +
ToDo:
 +
*Ændre til at bruge Company
 +
*Lave nemt bruger oprettelses script
  
 
== Forberede Exchange til hosting ==
 
== Forberede Exchange til hosting ==
Linje 71: Linje 84:
 
remove-addresslist "Public Folders"
 
remove-addresslist "Public Folders"
 
</pre>
 
</pre>
 +
 +
Default Global Address List kan ikke slettes.
  
 
=== Gemme adresse lister i AD ===
 
=== Gemme adresse lister i AD ===
Linje 97: Linje 112:
 
I Active Directory Users and Computers, opret ny OU, "Hosting", under denne oprettes de forskellige kunder der skal køre på Exchangen.
 
I Active Directory Users and Computers, opret ny OU, "Hosting", under denne oprettes de forskellige kunder der skal køre på Exchangen.
  
Under Hosting OU laver du igen en OU, "FirmaEt", under denne laves igen 2 OU'er "Groups" og "Users" (Se billede).
+
Under Hosting OU laver du igen en OU, "FirmaEt", under denne laves igen 2 OU'er "Groups" og "Users".
 
<br />
 
<br />
 
Gentag dette for alle de kunder der skal køre på systemet.
 
Gentag dette for alle de kunder der skal køre på systemet.
Linje 115: Linje 130:
 
Tilføj UPN for de domæner der skal hostes, til brug under logon.
 
Tilføj UPN for de domæner der skal hostes, til brug under logon.
  
Active Directory Sites and Services -> Højre klik på Active Directory Sites and Services -> Properties, Tilføj domænet der.
+
Active Directory Domains and Trusts -> Højre klik på Active Directory Domains and Trusts -> Properties, Tilføj domænet der.
  
 
==== AD PowerShell ====
 
==== AD PowerShell ====
Linje 133: Linje 148:
 
Exchange Management Shell command completed:
 
Exchange Management Shell command completed:
 
<pre>
 
<pre>
new-AddressList -Name 'FirmaEt' -RecipientContainer 'MyDomain.local/Hosting/FirmaEt/Users' -IncludedRecipients 'MailboxUsers' -ConditionalCustomAttribute1 'FirmaEt' -Container '\' -DisplayName 'FirmaEt'
+
new-AddressList -Name 'FirmaEt AL' -RecipientContainer 'MyDomain.local/Hosting/FirmaEt/Users' -IncludedRecipients 'MailboxUsers'
 +
-ConditionalCustomAttribute1 'FirmaEt' -Container '\' -DisplayName 'FirmaEt'
 
</pre>
 
</pre>
  
 
=== Ny kunde Global Adresse liste ===
 
=== Ny kunde Global Adresse liste ===
  
Kan det ikke laves via GUI?
+
Kan ikke laves i GUI.
 
+
==== EMS ====
+
  
 
<pre>
 
<pre>
Linje 169: Linje 183:
 
==== EMS ====
 
==== EMS ====
  
<pre>
+
<pre style="white-space: pre-wrap;
new-EmailAddressPolicy -Name 'FirmaEt EAP' -IncludedRecipients 'MailboxUsers' -ConditionalCustomAttribute1 'FirmaEt' -Priority 'Lowest' -EnabledEmailAddressTemplates 'SMTP:%m@FirmaEt.dk'
+
white-space: -moz-pre-wrap;
 +
white-space: -pre-wrap;
 +
white-space: -o-pre-wrap;
 +
word-wrap: break-word">
 +
new-EmailAddressPolicy -Name 'FirmaEt EAP' -RecipientContainer 'MyDomain.local/Hosting/FirmaEt' -IncludedRecipients 'AllRecipients'
 +
-ConditionalCustomAttribute1 'FirmaEt' -Priority 'Lowest' -EnabledEmailAddressTemplates 'SMTP:%m@FirmaEt.dk'
 +
</pre>
 +
 
 +
Company
 +
 
 +
<pre style="white-space: pre-wrap;
 +
white-space: -moz-pre-wrap;
 +
white-space: -pre-wrap;
 +
white-space: -o-pre-wrap;
 +
word-wrap: break-word">
 +
new-EmailAddressPolicy -Name 'FirmaEt EAP' -RecipientContainer 'MyDomain.local/Hosting/FirmaEt' -IncludedRecipients 'AllRecipients' -ConditionalCompany 'FirmaEt' -Priority 'Lowest' -EnabledEmailAddressTemplates 'SMTP:%m@mFirmaEt.dk'
 
</pre>
 
</pre>
  
Linje 177: Linje 206:
 
==== EMS ====
 
==== EMS ====
 
<pre>
 
<pre>
new-DistributionGroup -Name 'FirmaEt-mail' -Type 'Security' -OrganizationalUnit 'MyDomain.local/Hosting/FirmaEt/Groups' -SamAccountName 'FirmaEt-mail' -Alias 'FirmaEt-mail'
+
new-DistributionGroup -Name 'FirmaEt-mail' -Type 'Security' -OrganizationalUnit 'MyDomain.local/Hosting/FirmaEt/Groups' -SamAccountName 'FirmaEt-mail'
 +
-Alias 'FirmaEt-mail'
 
Set-DistributionGroup -BypassSecurityGroupManagerCheck -CustomAttribute1 'FirmaEt' -Identity 'MyDomain.local/Hosting/FirmaEt/Groups/FirmaEt-mail'
 
Set-DistributionGroup -BypassSecurityGroupManagerCheck -CustomAttribute1 'FirmaEt' -Identity 'MyDomain.local/Hosting/FirmaEt/Groups/FirmaEt-mail'
 
</pre>
 
</pre>
  
=== Give tilladelse til kundens adresse liste ===
+
=== Give tilladelse til kundens adresse liste EMS  ===
 +
 
 +
Nu da kundens adresselister er oprettet, skal adgangen for alle kunderne til dem fjernes, og dette
 +
gøres i ADSI Edit.<br />
 +
Gå til Configuration -> CN=Configuration,DC=domain,DC=local -> CN=Services ->
 +
CN=Microsoft Exchange -> CN=domain -> CN=Address Lists Container -> CN=All Address
 +
Lists, højre klik på CN=RTK AL og vælg Properties.<br />
 +
Gå til Security fanen, klik på Advanced og fravælg Include inheritable permissions from this
 +
object's parent. På advarselen der kommer klik på Add, og OK, og klik Yes på de 2 næste
 +
advarsler. <br />
 +
Tilbage på Security fanen fjern Authenticated Users, og klik OK. <br />
 +
Dette skal gentages for alle kunders adresse lister under All Global Address Lists og evt. andre.
 +
 
 +
Derefter:
  
 
<pre>
 
<pre>
$container = "CN=KAOS GAL,CN=All Global Address Lists,CN=Address Lists Container,CN=My Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=mydomain,DC=local"
+
$container = "CN=FirmaEt GAL,CN=All Global Address Lists,CN=Address Lists Container,CN=My Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,
Add-ADPermission $container -User "KAOS Agents" -AccessRights GenericRead, ListChildren -ExtendedRights Open-Address-Book
+
DC=mydomain,DC=local"
 +
Add-ADPermission $container -User "FirmaEt-mail" -AccessRights GenericRead, ListChildren -ExtendedRights Open-Address-Book
  
$container = "CN=KAOS AL,CN=All Address Lists,CN=Address Lists Container,CN=My Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=mydomain,DC=local"
+
$container = "CN=FirmaEt AL,CN=All Address Lists,CN=Address Lists Container,CN=My Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=mydomain,DC=local"
Add-ADPermission $container -User "KAOS Agents" -AccessRights GenericRead, ListChildren -ExtendedRights Open-Address-Book
+
Add-ADPermission $container -User "FirmaEt-mail" -AccessRights GenericRead, ListChildren -ExtendedRights Open-Address-Book
  
$container = "CN=KAOS OAB,CN=Offline Address Lists,CN=Address Lists Container,CN=My Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=mydomain,DC=local"
 
Add-ADPermission $container -User "KAOS Agents" -AccessRights GenericRead, ListChildren -ExtendedRights ms-Exch-Download-OAB
 
 
</pre>
 
</pre>
 +
 +
=== addressBookRoots ===
 +
For de andre lister skal vi ind i ADSI Edit igen, højre klik på RTK AL og vælg Properties, find distinguishedName i listen, tryk på View, kopiere indholdet i boksen, "CN=FirmaEt AL,CN=All Address Lists,CN=Address Lists Container,CN=domain,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=domain,DC=local",
 +
<br />luk boksen igen og gå til CN=Microsoft Exchange, CN=Services, CN=Configuration, DC=kmhost, DC=local.
 +
<br />
 +
Højre klik på CN=Microsoft Exchange, vælg Properties, find addressBookRoots og indsæt den streng der blev kopiered før i listen.<br />
 +
Gentag dette for hver kunde.
  
 
== Oprette brugere ==
 
== Oprette brugere ==
Linje 201: Linje 250:
  
 
<pre>
 
<pre>
New-Mailbox -Name 'Fornavn Efternavn' -Alias 'FE' -OrganizationalUnit 'MyDomain.local/Hosting/FirmaEt/Users' -UserPrincipalName 'fe@FirmaEt.dk' -SamAccountName 'FE.FirmaEt' -FirstName 'Fornavn' -Initials ''  
+
New-Mailbox -Name 'Fornavn Efternavn' -Alias 'FE' -OrganizationalUnit 'MyDomain.local/Hosting/FirmaEt/Users' -UserPrincipalName 'fe@FirmaEt.dk'
 
+
-SamAccountName 'FE.FirmaEt' -FirstName 'Fornavn' -Initials '' -LastName 'Efternavn' -Password (ConvertTo-SecureString -AsPlainText -Force -String PassW0rd)
-LastName 'Efternavn' ***-Password 'System.Security.SecureString'*** -ResetPasswordOnNextLogon $false
+
-ResetPasswordOnNextLogon $false
*** Mangler ***
+
  
 
Set-Mailbox -CustomAttribute1 'FirmaEt' -Identity 'MyDomain.local/Hosting/FirmaEt/Users/Fornavn Efternavn'
 
Set-Mailbox -CustomAttribute1 'FirmaEt' -Identity 'MyDomain.local/Hosting/FirmaEt/Users/Fornavn Efternavn'
  
Add-DistributionGroupMember -Identity 'MyDomain.local/Hosting/FirmaEt/Groups/FirmaEt-mail' -Member 'MyDomain.local/Hosting/FirmaEt/Users/Fornavn Efternavn' -BypassSecurityGroupManagerCheck
+
Add-DistributionGroupMember -Identity 'MyDomain.local/Hosting/FirmaEt/Groups/FirmaEt-mail' -Member 'MyDomain.local/Hosting/FirmaEt/Users/Fornavn Efternavn'
 +
-BypassSecurityGroupManagerCheck
  
 
$user = ([ADSI]"LDAP://PDC.MyDomain.local/CN=Fornavn Efternavn,OU=Users,OU=FirmaEt,OU=Hosting,DC=MyDomain,DC=local").psbase;
 
$user = ([ADSI]"LDAP://PDC.MyDomain.local/CN=Fornavn Efternavn,OU=Users,OU=FirmaEt,OU=Hosting,DC=MyDomain,DC=local").psbase;
 
$user.Properties["msExchQueryBaseDN"].Value = "OU=FirmaEt,OU=Hosting,DC=MyDomain,DC=local";
 
$user.Properties["msExchQueryBaseDN"].Value = "OU=FirmaEt,OU=Hosting,DC=MyDomain,DC=local";
 
$user.CommitChanges();
 
$user.CommitChanges();
 +
</pre>
 +
 +
Company
 +
 +
<pre style="white-space: pre-wrap;
 +
white-space: -moz-pre-wrap;
 +
white-space: -pre-wrap;
 +
white-space: -o-pre-wrap;
 +
word-wrap: break-word">
 +
New-Mailbox -Name 'Jens' -Alias 'Jens' -OrganizationalUnit 'MyDomain.local/Hosting/FirmaEt/Users' -UserPrincipalName 'jens@FirmaEt.dk' -SamAccountName 'Jens.FirmaEt' -FirstName 'Jens' -Initials '' -LastName '' -Password (ConvertTo-SecureString -AsPlainText -Force -String tK2QBCR6Lt) -ResetPasswordOnNextLogon $false
 +
 +
Add-DistributionGroupMember -Identity 'MyDomain.local/Hosting/FirmaEt/Groups/FirmaEt-mail' -Member 'MyDomain.local/Hosting/FirmaEt/Users/Jens' -BypassSecurityGroupManagerCheck
 +
 +
$user = ([ADSI]"LDAP://PDC.MyDomain.local/CN=Fornavn Efternavn,OU=Users,OU=FirmaEt,OU=Hosting,DC=MyDomain,DC=local").psbase;
 +
$user.Properties["msExchQueryBaseDN"].Value = "OU=FirmaEt,OU=Hosting,DC=MyDomain,DC=local";
 +
$user.CommitChanges();
 +
 +
AD Powershell:
 +
Set-ADUser Jens.FirmaEt -Company 'FirmaEt'
 
</pre>
 
</pre>
  
Linje 218: Linje 286:
  
 
=== Storage styring ===
 
=== Storage styring ===
 +
 +
http://www.msexchange.org/articles-tutorials/exchange-server-2007/management-administration/exchange-2007-message-size-limits.html
 +
 +
http://exchangeshare.wordpress.com/2008/04/24/exchange-2007-where-to-set-message-mail-size-limit/
 +
 +
http://technet.microsoft.com/en-us/library/bb124345%28EXCHG.80%29.aspx
 +
 +
http://exchangepedia.com/blog/2007/09/exchange-server-2007-setting-message-size.html
 +
 +
<pre>
 +
@'
 +
Set-Mailbox -UseDatabaseRetentionDefaults $false -RetainDeletedItemsFor '45.00:00:00' -ProhibitSendQuota '1000 MB (1,048,576,000 bytes)'
 +
-ProhibitSendReceiveQuota '1.001 GB (1,074,790,400 bytes)' -UseDatabaseQuotaDefaults $false -IssueWarningQuota '850 MB (891,289,600 bytes)'
 +
-Identity 'MyDomain.local/Hosting/FirmaEt/Users/Fornavn Efternavn'
 +
'@
 +
</pre>
 +
 +
<pre>
 +
Set-Mailbox -MaxSendSize '25 MB (26,214,400 bytes)' -MaxReceiveSize '25 MB (26,214,400 bytes)' -Identity 'MyDomain.local/Hosting/FirmaEt/Users/Fornavn Efternavn'
 +
</pre>
 +
 +
<pre>
 +
Set-TransportConfig -MaxReceiveSize '25 MB (26,214,400 bytes)' -MaxSendSize '25 MB (26,214,400 bytes)'
 +
</pre>
 +
 +
<pre>
 +
Set-ReceiveConnector -MaxMessageSize '25 MB (26,214,400 bytes)' -Identity 'EXCH\Client EXCH'
 +
</pre>
  
 
== Læs mere ==
 
== Læs mere ==
Linje 227: Linje 323:
  
 
[http://www.kortekservices.com/lyle/]
 
[http://www.kortekservices.com/lyle/]
 +
 +
[http://technet.microsoft.com/en-us/library/bb936719(EXCHG.80).aspx White Paper: Configuring Virtual Organizations and Address List Segregation in Exchange 2007]
 +
 +
[http://www.microsoft.com/hosting/en/us/solutions/hostedmessaging.aspx Microsoft Hosted Messaging and Collaboration]
  
 
= Mere info =
 
= Mere info =
 +
 +
[http://www.msexchange.org/articles_tutorials/exchange-server-2010/migration-deployment/using-disclaimer-exchange-server-2010.html Using Disclaimer in Exchange Server 2010]
 +
 +
[http://www.msexchange.org/articles_tutorials/exchange-server-2010/management-administration/management-administration/exchange-2010-management-architecture-single-machine-manage-multiple-exchange-2010-organizations.html Exchange 2010 Management Architecture – Using a single machine to manage multiple Exchange 2010 Organizations]
 +
 +
[http://www.msexchange.org/articles_tutorials/exchange-server-2007/management-administration/managing-exchange-2007-recipients-active-directory-users-computers-mmc-snap-in.html Managing Exchange 2007 Recipients using the Active Directory Users and Computers MMC Snap-in]
 +
 
== Andre gode links ==
 
== Andre gode links ==
 
[http://www.burchwords.com/archives/1071 Exchange 2007: Distribution Group – User Unknown Bounceback]
 
[http://www.burchwords.com/archives/1071 Exchange 2007: Distribution Group – User Unknown Bounceback]
  
 
[http://social.technet.microsoft.com/Forums/en/exchange2010/thread/b065d176-0ebb-4b72-8d05-bc86318944ab Catch-all for 2010 HUB only setup]
 
[http://social.technet.microsoft.com/Forums/en/exchange2010/thread/b065d176-0ebb-4b72-8d05-bc86318944ab Catch-all for 2010 HUB only setup]
 +
 +
http://social.technet.microsoft.com/wiki/contents/articles/1629.aspx
  
 
== Bøger ==
 
== Bøger ==

Nuværende version fra 23. okt 2012, 09:00

Installere

Exchange 2010 Install on Server 2008 R2

How to Install Exchange Server 2010 Beta

Installing Exchange Server 2010 (Beta) (Part 1)

Anti spam (Hub transport)

Install Anti-spam Agents on the Hub Transport server

Enable Anti-Spam Functionality on a Hub Transport Server

./install-AntispamAgents.ps1 Restart-Service MSExchangeTransport

EMS:

set-recipientfilterconfig -RecipientValidationEnabled $true

set-senderfilterconfig -BlockedSenders @() -BlockedDomains @() -BlockedDomainsAndSubdomains @() -BlankSenderBlockingEnabled $true

set-contentfilterconfig -SCLRejectThreshold '5' -SCLDeleteThreshold '7' -SCLDeleteEnabled $true

add-IPBlockListProvider -Name 'zen.spamhaus.org' -LookupDomain 'zen.spamhaus.org' -Enabled $true -BitmaskMatch $null -IPAddressesMatch @() -AnyMatch $true
-Priority '1' -RejectionResponse ''
add-IPBlockListProvider -Name 'dnsbl.sorbs.net' -LookupDomain 'dnsbl.sorbs.net' -Enabled $true -BitmaskMatch $null -IPAddressesMatch @() -AnyMatch $true
-Priority '2' -RejectionResponse ''
add-IPBlockListProvider -Name 'bl.spamcop.net' -LookupDomain 'bl.spamcop.net' -Enabled $true -BitmaskMatch $null -IPAddressesMatch @() -AnyMatch $true -Priority '3'
-RejectionResponse ''
add-IPBlockListProvider -Name 'dnsbl-1.uceprotect.net' -LookupDomain 'dnsbl-1.uceprotect.net' -Enabled $true -BitmaskMatch $null -IPAddressesMatch @()
-AnyMatch $true -Priority '4' -RejectionResponse ''

Shared hosting

Forudsætter Exchange 2010 er installeret på Windows 2008 R2 Server. Der bliver ikke forklaret hvorfor du skal gøre som vist, dette er kun som "vi" sætter det op og ved der virker. Hvis du vil læse lidt mere forklaring så tjek msexchange.org lidt længere nede.

Bemærk! Med SP1 og 2 er der kommet bedre muligheder for hosting, hosting mode og gal segmentation. Jeg har ikke selv testet dette af, da vi er gået over til Office 365

Mangler:

  • Offline Adresse Book

ToDo:

  • Ændre til at bruge Company
  • Lave nemt bruger oprettelses script

Forberede Exchange til hosting

Ændre dsHeuristics

Åben ADSIEdit
->
CN=Configuration
->
CN=Services
->
CN=Windows NT
->
CN=Directory Service.
->
Højre klik på CN=Directory Service vælg Properties.
->
Vælg attribute dsHeuristics
->
Ændret den til 001, hvis der står <not set>, ellers kun ændre det sidste tal til 1.

Klik OK og luk Properties.

Fjerne adresselister

Exchange Mangement Console -> Organization Configuration -> Mailbox -> Address Lists

Exchange Mangement Shell

remove-addresslist "All Contacts"
remove-addresslist "All Groups"
remove-addresslist "All Rooms"
remove-addresslist "All Users"
remove-addresslist "Public Folders"

Default Global Address List kan ikke slettes.

Gemme adresse lister i AD

Modifying Permissions for the Address Lists Containers

Nu skal der ændres nogle ting i AD som Microsoft ikke anbefaler eller supportere.
(Hvis dette kan gøres med PowerShell ville det være dejligt)
For at gøre det nemt, så læs fra "Modifying Permissions for the Address Lists Containers" til Figure 10, Punkt 4, for så forsætter vi her:

$container = "CN=All Global Address Lists,CN=Address Lists Container,CN=My Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=mydomain,DC=local"
Add-ADPermission -Identity $container -User "Authenticated Users" -AccessRights ListObject

$container = "CN=All Address Lists,CN=Address Lists Container,CN=My Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=mydomain,DC=local"
Add-ADPermission -Identity $container -User "Authenticated Users" -AccessRights ListObject

$container = "CN=Offline Address Lists,CN=Address Lists Container,CN=My Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=mydomain,DC=local"
Add-ADPermission -Identity $container -User "Authenticated Users" -AccessRights ListObject

Kan ikke gennemskue om det herover er nødvendigt.

Oprette grupper i AD

I Active Directory Users and Computers, opret ny OU, "Hosting", under denne oprettes de forskellige kunder der skal køre på Exchangen.

Under Hosting OU laver du igen en OU, "FirmaEt", under denne laves igen 2 OU'er "Groups" og "Users".
Gentag dette for alle de kunder der skal køre på systemet.

Active Directory Module for Windows PowerShell

New-ADOrganizationalUnit -Name Hosting -Path "DC=MyDomain,DC=local"
New-ADOrganizationalUnit -Name FirmaEt -Path "OU=Hosting,DC=MyDomain,DC=local"
New-ADOrganizationalUnit -Name Groups -Path "OU=FirmaEt,OU=Hosting,DC=MyDomain,DC=local"
New-ADOrganizationalUnit -Name Users -Path "OU=FirmaEt,OU=Hosting,DC=MyDomain,DC=local"

Oprette firma

Tilføje UPN suffixes

Tilføj UPN for de domæner der skal hostes, til brug under logon.

Active Directory Domains and Trusts -> Højre klik på Active Directory Domains and Trusts -> Properties, Tilføj domænet der.

AD PowerShell

$usn = "FirmaEt.dk"
$root = [ADSI]"LDAP://rootDSE"
$conf = [ADSI]"LDAP://cn=partitions,$($root.configurationNamingContext)"
$conf.uPNSuffixes += $usn
$conf.SetInfo()

Ny kunde adresse liste

EMS

Exchange Management Shell command completed:

new-AddressList -Name 'FirmaEt AL' -RecipientContainer 'MyDomain.local/Hosting/FirmaEt/Users' -IncludedRecipients 'MailboxUsers'
-ConditionalCustomAttribute1 'FirmaEt' -Container '\' -DisplayName 'FirmaEt'

Ny kunde Global Adresse liste

Kan ikke laves i GUI.

New-GlobalAddressList -Name "FirmaEt GAL" -ConditionalCustomAttribute1 "FirmaEt" -IncludedRecipients AllRecipients

Ny kunde accepted mail domain

Organization Configuration
->
Hub Transport
->
Klik på New accepted domain.
->
Skrive domæne navnet.
->
Vælg Authoritiative domain (den øverste).
->
Klik New.

EMS

new-AcceptedDomain -Name 'FirmaEt' -DomainName 'FirmaEt.dk' -DomainType 'Authoritative'

E-mail Address policy

EMS

new-EmailAddressPolicy -Name 'FirmaEt EAP' -RecipientContainer 'MyDomain.local/Hosting/FirmaEt' -IncludedRecipients 'AllRecipients'
-ConditionalCustomAttribute1 'FirmaEt' -Priority 'Lowest' -EnabledEmailAddressTemplates 'SMTP:%m@FirmaEt.dk'

Company

new-EmailAddressPolicy -Name 'FirmaEt EAP' -RecipientContainer 'MyDomain.local/Hosting/FirmaEt' -IncludedRecipients 'AllRecipients' -ConditionalCompany 'FirmaEt' -Priority 'Lowest' -EnabledEmailAddressTemplates 'SMTP:%m@mFirmaEt.dk'

Distribution Group

EMS

new-DistributionGroup -Name 'FirmaEt-mail' -Type 'Security' -OrganizationalUnit 'MyDomain.local/Hosting/FirmaEt/Groups' -SamAccountName 'FirmaEt-mail'
-Alias 'FirmaEt-mail'
Set-DistributionGroup -BypassSecurityGroupManagerCheck -CustomAttribute1 'FirmaEt' -Identity 'MyDomain.local/Hosting/FirmaEt/Groups/FirmaEt-mail'

Give tilladelse til kundens adresse liste EMS

Nu da kundens adresselister er oprettet, skal adgangen for alle kunderne til dem fjernes, og dette gøres i ADSI Edit.
Gå til Configuration -> CN=Configuration,DC=domain,DC=local -> CN=Services -> CN=Microsoft Exchange -> CN=domain -> CN=Address Lists Container -> CN=All Address Lists, højre klik på CN=RTK AL og vælg Properties.
Gå til Security fanen, klik på Advanced og fravælg Include inheritable permissions from this object's parent. På advarselen der kommer klik på Add, og OK, og klik Yes på de 2 næste advarsler.
Tilbage på Security fanen fjern Authenticated Users, og klik OK.
Dette skal gentages for alle kunders adresse lister under All Global Address Lists og evt. andre.

Derefter:

$container = "CN=FirmaEt GAL,CN=All Global Address Lists,CN=Address Lists Container,CN=My Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,
DC=mydomain,DC=local"
Add-ADPermission $container -User "FirmaEt-mail" -AccessRights GenericRead, ListChildren -ExtendedRights Open-Address-Book

$container = "CN=FirmaEt AL,CN=All Address Lists,CN=Address Lists Container,CN=My Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=mydomain,DC=local"
Add-ADPermission $container -User "FirmaEt-mail" -AccessRights GenericRead, ListChildren -ExtendedRights Open-Address-Book

addressBookRoots

For de andre lister skal vi ind i ADSI Edit igen, højre klik på RTK AL og vælg Properties, find distinguishedName i listen, tryk på View, kopiere indholdet i boksen, "CN=FirmaEt AL,CN=All Address Lists,CN=Address Lists Container,CN=domain,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=domain,DC=local",
luk boksen igen og gå til CN=Microsoft Exchange, CN=Services, CN=Configuration, DC=kmhost, DC=local.
Højre klik på CN=Microsoft Exchange, vælg Properties, find addressBookRoots og indsæt den streng der blev kopiered før i listen.
Gentag dette for hver kunde.

Oprette brugere

Hvis du har oprettet brugere, så brug ADModify til at sætte msExchQueryBaseDN.

EMS

New-Mailbox -Name 'Fornavn Efternavn' -Alias 'FE' -OrganizationalUnit 'MyDomain.local/Hosting/FirmaEt/Users' -UserPrincipalName 'fe@FirmaEt.dk'
-SamAccountName 'FE.FirmaEt' -FirstName 'Fornavn' -Initials '' -LastName 'Efternavn' -Password (ConvertTo-SecureString -AsPlainText -Force -String PassW0rd)
-ResetPasswordOnNextLogon $false

Set-Mailbox -CustomAttribute1 'FirmaEt' -Identity 'MyDomain.local/Hosting/FirmaEt/Users/Fornavn Efternavn'

Add-DistributionGroupMember -Identity 'MyDomain.local/Hosting/FirmaEt/Groups/FirmaEt-mail' -Member 'MyDomain.local/Hosting/FirmaEt/Users/Fornavn Efternavn'
-BypassSecurityGroupManagerCheck

$user = ([ADSI]"LDAP://PDC.MyDomain.local/CN=Fornavn Efternavn,OU=Users,OU=FirmaEt,OU=Hosting,DC=MyDomain,DC=local").psbase;
$user.Properties["msExchQueryBaseDN"].Value = "OU=FirmaEt,OU=Hosting,DC=MyDomain,DC=local";
$user.CommitChanges();

Company

New-Mailbox -Name 'Jens' -Alias 'Jens' -OrganizationalUnit 'MyDomain.local/Hosting/FirmaEt/Users' -UserPrincipalName 'jens@FirmaEt.dk' -SamAccountName 'Jens.FirmaEt' -FirstName 'Jens' -Initials '' -LastName '' -Password (ConvertTo-SecureString -AsPlainText -Force -String tK2QBCR6Lt) -ResetPasswordOnNextLogon $false

Add-DistributionGroupMember -Identity 'MyDomain.local/Hosting/FirmaEt/Groups/FirmaEt-mail' -Member 'MyDomain.local/Hosting/FirmaEt/Users/Jens' -BypassSecurityGroupManagerCheck

$user = ([ADSI]"LDAP://PDC.MyDomain.local/CN=Fornavn Efternavn,OU=Users,OU=FirmaEt,OU=Hosting,DC=MyDomain,DC=local").psbase;
$user.Properties["msExchQueryBaseDN"].Value = "OU=FirmaEt,OU=Hosting,DC=MyDomain,DC=local";
$user.CommitChanges();

AD Powershell:
Set-ADUser Jens.FirmaEt -Company 'FirmaEt'

Ekstra

Storage styring

http://www.msexchange.org/articles-tutorials/exchange-server-2007/management-administration/exchange-2007-message-size-limits.html

http://exchangeshare.wordpress.com/2008/04/24/exchange-2007-where-to-set-message-mail-size-limit/

http://technet.microsoft.com/en-us/library/bb124345%28EXCHG.80%29.aspx

http://exchangepedia.com/blog/2007/09/exchange-server-2007-setting-message-size.html

@'
Set-Mailbox -UseDatabaseRetentionDefaults $false -RetainDeletedItemsFor '45.00:00:00' -ProhibitSendQuota '1000 MB (1,048,576,000 bytes)'
-ProhibitSendReceiveQuota '1.001 GB (1,074,790,400 bytes)' -UseDatabaseQuotaDefaults $false -IssueWarningQuota '850 MB (891,289,600 bytes)'
-Identity 'MyDomain.local/Hosting/FirmaEt/Users/Fornavn Efternavn'
'@
Set-Mailbox -MaxSendSize '25 MB (26,214,400 bytes)' -MaxReceiveSize '25 MB (26,214,400 bytes)' -Identity 'MyDomain.local/Hosting/FirmaEt/Users/Fornavn Efternavn'
Set-TransportConfig -MaxReceiveSize '25 MB (26,214,400 bytes)' -MaxSendSize '25 MB (26,214,400 bytes)'
Set-ReceiveConnector -MaxMessageSize '25 MB (26,214,400 bytes)' -Identity 'EXCH\Client EXCH'

Læs mere

[1] [2] [3]

Most notably, on the second part, I didn't have to modify all the OWA stuff to hide the address lists...

[4]

White Paper: Configuring Virtual Organizations and Address List Segregation in Exchange 2007

Microsoft Hosted Messaging and Collaboration

Mere info

Using Disclaimer in Exchange Server 2010

Exchange 2010 Management Architecture – Using a single machine to manage multiple Exchange 2010 Organizations

Managing Exchange 2007 Recipients using the Active Directory Users and Computers MMC Snap-in

Andre gode links

Exchange 2007: Distribution Group – User Unknown Bounceback

Catch-all for 2010 HUB only setup

http://social.technet.microsoft.com/wiki/contents/articles/1629.aspx

Bøger

Exchange Server 2010 Unleashed

Windows Server 2008 R2 Unleashed