Open Exchange Management Shell –
Set-ExchangeServer EXCH01 -ProductKey 86VXV-O2HKP-32RH4-7JP6V-GF4BQ
Restart Information Store Services to Take Effect.
Get-ExchangeServer | FT Name,Edition,*Trial* -Auto
Read Below Series for Better Understanding –
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 2
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 3
Scenario 3: Implementing Address Book Policy (ABP) in Educational Institutions
Things to accomplish –
First I would Plan Custom Attributes for the Students – Segregating ClassA students separately
Customattribute1 = ClassAStudent
To apply Custom attribute to these mailboxes –
Get-Mailbox ClassAStudent* | Set-Mailbox -CustomAttribute1 "ClassAStudent"
Get-Mailbox ClassAStudent* | FT Name,Alias,Servername,Customattribute1
As similar,Segregating ClassB students separately – Customattribute2 = ClassBStudent
To apply Custom attribute to these mailboxes –
Get-Mailbox ClassBStudent* | Set-Mailbox -CustomAttribute2 "ClassBStudent"
Get-Mailbox ClassBStudent* | FT Name,Alias,Servername,Customattribute2
Now will segregate the Teachers
For All the Teachers am going to use – CustomAttribute3 = Teacher
To apply Custom attribute to these mailboxes –
Get-Mailbox *Teacher* | Set-Mailbox -CustomAttribute3 "Teacher"
Get-Mailbox *Teacher* | FT Name,Alias,Servername,Customattribute3
As We know already we need to Create 4 things for Every Address Book Policy,
1. Global Address list
2. Address list
3. Rooms list
4. Offline Address book
Now will Create an Address Book Policy for the ClassA students
Going to Set the Criteria whoever has Customattribute1 = ClassAStudent They will be listed in Class A.
1. Global Address list
Creating a Global Address list
Need Exchange Management Shell to create Global Address list ,
Where users with Custom attribute 1 with value ClassAStudent will be showing up
New-GlobalAddressList -Name "ClassA-GAL" -RecipientFilter {(CustomAttribute1 -eq "ClassAStudent")}
2. Address list
New-AddressList -Name "ClassA-AL" -RecipientFilter {((RecipientType -eq 'UserMailbox') -or (RecipientType -eq "MailUniversalDistributionGroup") -or (RecipientType -eq "DynamicDistributionGroup")) -and (CustomAttribute1 -eq "ClassAStudent")}
3. Rooms list
New-AddressList -Name ClassA-Rooms -RecipientFilter {(Alias -ne $null) -and (CustomAttribute1 -eq "ClassAStudent")-and (RecipientDisplayType -eq 'ConferenceRoomMailbox') -or (RecipientDisplayType -eq 'SyncedConferenceRoomMailbox')}
4. Offline Address book
New-OfflineAddressBook -Name "ClassA-OAB" -AddressLists "ClassA-GAL"
Now will Create an Address Book Policy –
New-AddressBookPolicy -Name "ClassA-ABP" -AddressLists "\ClassA-AL" -OfflineAddressBook "\ClassA-OAB" -GlobalAddressList "\ClassA-GAL" -RoomList "\ClassA-Rooms"
Applied ClassA-ABP for my ClassAStudents
To apply ABP to these mailboxes –
Get-Mailbox ClassAstudent* | Set-Mailbox -AddressBookPolicy "ClassA-ABP"
Get-Mailbox ClassAStudent* | FT Name,Alias,Servername,Customattribute1,AddressbookPolicy
Now My Class A Students will See only Class A Students.
Now Am going to Get the Class A Teacher to Show up for the ClassA Students.
Note : As we created an Address book policy already as whoever has Customattribute1 = ClassAStudent They will be listed in Class A GAL.
Going to ClassA Teacher and am going to set CustomAttribute1 as ClassAStudent
To apply Custom attribute to these mailboxes –
Get-Mailbox ClassATeacher* | Set-Mailbox -CustomAttribute1 ClassAStudent
Get-Mailbox ClassATeacher* | FT Name,Alias,Servername,Customattribute1
Going to my ClassAStudent1 Outlook Web Access you can see their Teachers & co-students alone
We need our Principal to be listed in Class A GAL
Note : As we created an Address book policy already as whoever has Customattribute1 = ClassAStudent They will be listed in Class A GAL.
To apply Custom attribute to these mailboxes –
Get-Mailbox Principal | Set-Mailbox -CustomAttribute1 ClassAStudent
Get-Mailbox Principal | FT Name,Alias,Servername,Customattribute1
Now you can see the principal listed for the Class A Students
Now will Create an Address Book Policy for the ClassB students – Re-doing the same process with ClassB-student
1. Global Address list
2. Address list
3. Rooms list
4. Offline Address book
1. Global Address list
Creating a Global Address list
Need Exchange Management Shell to create Global Address list ,
Where users with Custom attribute 2 with value ClassBStudent will be showing up
New-GlobalAddressList -Name "ClassB-GAL" -RecipientFilter {(CustomAttribute2 -eq "ClassBStudent")}
2. Address list
New-AddressList -Name "ClassB-AL" -RecipientFilter {((RecipientType -eq 'UserMailbox') -or (RecipientType -eq "MailUniversalDistributionGroup") -or (RecipientType -eq "DynamicDistributionGroup")) -and (CustomAttribute2 -eq "ClassBStudent")}
3. Rooms list
New-AddressList -Name ClassB-Rooms -RecipientFilter {(Alias -ne $null) -and (CustomAttribute2 -eq "ClassBStudent")-and (RecipientDisplayType -eq 'ConferenceRoomMailbox') -or (RecipientDisplayType -eq 'SyncedConferenceRoomMailbox')}
4. Offline Address book
New-OfflineAddressBook -Name "ClassB-OAB" -AddressLists "ClassB-GAL"
Now will Create an Address Book Policy –
New-AddressBookPolicy -Name "ClassB-ABP" -AddressLists "\ClassB-AL" -OfflineAddressBook "\ClassB-OAB" -GlobalAddressList "\ClassB-GAL" -RoomList "\ClassB-Rooms"
Applying ClassB-ABP for my ClassAStudents
To apply ABP to these mailboxes – Get-Mailbox ClassBstudent* | Set-Mailbox -AddressBookPolicy “ClassB-ABP”
Get-Mailbox ClassBStudent* | FT Name,Alias,Servername,Customattribute2,AddressbookPolicy
Now My Class B Students will See only Class B Students.
Now Am going to Get the Class B Teacher to Show up for the ClassB Students.
Note : As we created an Address book policy already as whoever has Customattribute2 = ClassBStudent They will be listed in Class B GAL.
Going to ClassB Teacher and am going to set CustomAttribute2 as ClassBStudent
To apply Custom attribute to these mailboxes –
Get-Mailbox ClassBTeacher* | Set-Mailbox -CustomAttribute2 ClassBStudent
Get-Mailbox ClassBTeacher* | FT Name,Alias,Servername,Customattribute2
Going to my ClassBStudent1 Outlook Web Access you can see their Teachers & co-students alone
We need our Principal to be listed in Class B GAL
Note : As we created an Address book policy already as whoever has Customattribute2 = ClassBStudent They will be listed in Class B GAL.
To apply Custom attribute to these mailboxes –
Get-Mailbox Principal | Set-Mailbox -CustomAttribute2 ClassBStudent
Get-Mailbox Principal | FT Name,Alias,Servername,Customattribute2
Now you can see the principal listed for the Class B Students
Now my Classrooms are Ready
Now will Create an Address Book Policy for the Class A Teachers
Now my Class A Teachers has to view all the colleagues (All Teachers)
Now my Class A Teachers has to view only ClassA Students
So setting the value like objects having value 1 or 3 should be listed for Class A Teachers
Customattribute1 = ClassAStudent or Customattribute3 = Teacher
So they will see All the Teachers as well as ClassAStudents alone
1. Global Address list
Creating a Global Address list
Need Exchange Management Shell to create Global Address list ,
Where users with Custom attribute 1 or 3 only will show up
Customattribute1 = ClassAStudent or Customattribute3 = Teacher
New-GlobalAddressList -Name "TeacherA-GAL" -RecipientFilter {(CustomAttribute1 -eq "ClassAStudent") -or (CustomAttribute3 -eq "Teacher")}
2. Address list
New-AddressList -Name "TeacherA-AL" -RecipientFilter {((RecipientType -eq 'UserMailbox') -or (RecipientType -eq "MailUniversalDistributionGroup") -or (RecipientType -eq "DynamicDistributionGroup") -and (CustomAttribute1 -eq "ClassAStudent") -or (CustomAttribute3 -eq "Teacher"))}
3. Rooms list
New-AddressList -Name "TeacherA-Rooms" -RecipientFilter {(Alias -ne $null) -and (customattribute1 -eq "ClassAStudent") -or (Customattribute3 -eq "Teacher") -and (RecipientDisplayType -eq 'ConferenceRoomMailbox') -or (RecipientDisplayType -eq 'SyncedConferenceRoomMailbox')}
4. Offline Address book
New-OfflineAddressBook –Name TeacherA-OAB –Addresslists "TeacherA-GAL"
Now will Create an Address Book Policy –
New-AddressBookPolicy -Name "TeacherA-ABP" -AddressLists "\TeacherA-AL" -OfflineAddressBook "\TeacherA-OAB" -GlobalAddressList "\TeacherA-GAL" -RoomList "\TeacherA-Rooms"
Applied TeacherA-ABP to ClassATeachers
To apply ABP to these mailboxes –
Get-Mailbox ClassATeacher* | Set-Mailbox -AddressBookPolicy "TeacherA-ABP"
Get-Mailbox ClassATeacher* | FT Name,Alias,Servername,Customattribute3,AddressbookPolicy
Now My TeacherA will See his ClassAStudents and Co-Teachers (With Customattribute3) and the Principal (with CustomAttribute1)
I hope you got a Better Understanding now
You can redo the Same process for ClassB Teachers
Now Class B Teachers has to view all the colleagues (All Teachers)
Now Class B Teachers has to view only ClassB Students
So setting the custom attribute values 2 and 3 should be listed for Class B Teachers
Customattribute2 = ClassBStudent or Customattribute3 = Teacher
So they will see All the Teachers as well as ClassBStudents alone
Copy the Same Commands above and Replace values for custom attributes values and numbers alone.
Principal doesn’t need any Address book policy Cause he doesn’t have any restriction.
To Update all Global address list –
Get-GlobalAddressList | Update-GlobalAddressList
Please find the Process to Remove Address Book Policies –
Get-Mailbox ClassBStudent* | Set-Mailbox -AddressBookPolicy $null
Remove-AddressBookPolicy "ClassB-ABP"
Remove-OfflineAddressBook "ClassB-OAB"
Remove-AddressList ClassB-Rooms
remove-AddressList "ClassB-AL"
remove-GlobalAddressList "ClassB-GAL"
Hope this series will help people to implement address book policies effectively.
—
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 2
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 3
Let see how to rebuild and Content Index on Exchange 2013/2016 if the content index of the primary database went to a bad shape.
Note : This process takes more I/O on your disk . and increases the load on the server. if you have multiple databases on the same disk/server. Consider doing one by one.
If the Content index of the DAG copy failed you can run
Update-MailboxDatabaseCopy "DBname\Servername" –CatalogOnly
If the Content index of the primary DB failed
Get-MailboxDatabaseCopyStatus -Server EXCH2016A | fl
ExtendedErrorInfo :
SuspendComment :
RequiredLogsPresent :
SinglePageRestore : 0
ContentIndexState : FailedAndSuspended
ContentIndexErrorMessage : The content index is corrupted.
ContentIndexErrorCode : 19
ContentIndexVersion :
ContentIndexCrawlVersion :
ContentIndexBacklog :
ContentIndexRetryQueueSize :
Stop below Exchange Services –
Microsoft Exchange Search – MSExchangeFastSearch
Microsoft Exchange Search Host Controller – HostControllerService
Go to the affected database location – Move the Catalog folder to a different location –
Start the above services back.
Content Index will kick off (This process takes time)– going to unknown –> Crawling –> Healthy.
Name : PublicFolderMigration
Status : Failed
StatusDetail : FailedOther
SyncStage : CreatingFolderHierarchy
Flags : IntraOrg, Pull, Suspend, SuspendWhenReadyToComplete
RequestStyle : IntraOrg
Direction : Pull
Protect : False
Priority : Normal
Suspend : True
SourceVersion : Version 14.3 (Build 248.0)
SourceDatabase : Public Folder Database 1080091062
SourceServer : Exch2010.careexchange.in
BatchName :
OutlookAnywhereHostName :
RemoteCredentialUsername :
AuthenticationMethod : Basic
RemoteMailboxLegacyDN :
RemoteMailboxServerLegacyDN :
BadItemLimit : 0
BadItemsEncountered : 0
LargeItemLimit : 0
LargeItemsEncountered : 0
FolderToMailboxMap : {\}
QueuedTimestamp : 8/10/2015 11:40:23 AM
StartTimestamp : 8/10/2015 11:52:22 AM
LastUpdateTimestamp : 8/10/2015 11:52:26 AM
InitialSeedingCompletedTimestamp :
FinalSyncTimestamp :
CompletionTimestamp :
SuspendedTimestamp :
OverallDuration : 00:26:36
TotalFinalizationDuration :
TotalDataReplicationWaitDuration :
TotalSuspendedDuration :
TotalFailedDuration : 00:14:32
TotalQueuedDuration : 00:11:53
TotalInProgressDuration : 00:00:09
TotalStalledDueToCIDuration :
TotalStalledDueToHADuration :
TotalStalledDueToReadThrottle :
TotalStalledDueToWriteThrottle :
TotalStalledDueToReadCpu :
TotalStalledDueToWriteCpu :
TotalStalledDueToReadUnknown :
TotalStalledDueToWriteUnknown :
TotalTransientFailureDuration :
TotalIdleDuration : 00:00:05
MRSServerName :
EstimatedTransferSize : 0 B (0 bytes)
EstimatedTransferItemCount : 0
BytesTransferred : 11.73 KB (12,010 bytes)
BytesTransferredPerMinute :
ItemsTransferred : 0
PercentComplete : 10
PositionInQueue :
PreventCompletion : True
FailureCode : -2146233088
FailureType : DataValidationException
FailureSide : Target
Message :
Error: Property expression “Organizational Forms” isn’t valid. Valid values are:
Strings formed with characters from A to Z (uppercase or lowercase), digits from 0
to 9, !, #, $, %, &, ‘, *, +, -, /, =, ?, ^, _, `, {, |, } or ~. One or more
periods may be embedded in an alias, but each period should be preceded and
followed by at least one of the other characters. Unicode characters from U+00A1 to
U+00FF are also valid in an alias, but they will be mapped to a best-fit US-ASCII
string in the e-mail address, which is generated from such an alias.
FailureTimestamp : 8/10/2015 11:52:26 AM
IsValid : True
ValidationMessage :
OrganizationId :
RequestGuid : e08453d4-2d65-4fd5-8bf9-79e8ceed4ec4
RequestQueue : Mailbox Database 1800374097
ExchangeGuid : 4ac2597d-1bb0-4310-80f6-61f39aaec7f3
Identity : 5fe8bdf3-3a9c-4ec1-9e25-d0e8da0429e9\e08453d4-2d65-4fd5-8bf9-79e8ceed4ec4
DiagnosticInfo :
Report : 8/10/2015 11:40:22 AM [Exch2013] ‘careexchange.in/Users/Administrator’ created request.
8/10/2015 11:52:21 AM [Exch2013] The Microsoft Exchange Mailbox Replication
service ‘Exch2013.careexchange.in’ (15.0.847.31 caps:03FF) is examining the request.
8/10/2015 11:52:21 AM [Exch2013] Connected to target mailbox
‘4ac2597d-1bb0-4310-80f6-61f39aaec7f3’, database ‘Mailbox Database 1800374097’,
Mailbox server ‘Exch2013.careexchange.in’ Version 15.0 (Build 847.0), proxy server
‘Exch2013.careexchange.in’ 15.0.847.31 caps:1FFFCB07FFFF.
8/10/2015 11:52:21 AM [Exch2013] Connected to source mailbox ”, database ‘Public
Folder Database 1080091062’, Mailbox server ‘Exch2010.careexchange.in’ Version 14.3 (Build 248.0).
8/10/2015 11:52:21 AM [Exch2013] Request processing started.
8/10/2015 11:52:21 AM [Exch2013] Cleared sync state for request
00000000-0000-0000-0000-000000000000 due to ‘CleanupOrphanedMailbox’.
8/10/2015 11:52:22 AM [Exch2013] Stage: CreatingFolderHierarchy. Percent complete:
10.
8/10/2015 11:52:22 AM [Exch2013] Initializing folder hierarchy from mailbox ”: 46
folders total.
8/10/2015 11:52:22 AM [Exch2013] Folder creation progress: 0 folders created in
mailbox ‘4ac2597d-1bb0-4310-80f6-61f39aaec7f3’.
8/10/2015 11:52:26 AM [Exch2013] Fatal error DataValidationException has occurred.
ObjectState : New
Resolution —
Verified “Organizational Forms” was not used via public folders.
Removed using Exchange 2010 Public folder management Console.
Removed public folder migration request and Re run the public folder migration request.
Note : Usually it was always empty spaces in the alias or unsupported signs in the public folders.
Then it was keep keep saying “Relinquishing job because the mailbox is locked”
Patience was the resolution keeping it for like 1 to 2 hrs . It went through and completed.
Other things you can try.
8/10/2015 1:19:15 PM [Exch2013] Relinquishing job.
8/10/2015 1:19:16 PM [Exch2013] The Microsoft Exchange Mailbox Replication service
‘Exch2013.careexchange.in’ (15.0.847.31 caps:03FF) is examining the request.
8/10/2015 1:19:17 PM [Exch2013] Connected to target mailbox
‘4ac2597d-1bb0-4310-80f6-61f39aaec7f3’, database ‘Mailbox Database 1800374097’,
Mailbox server ‘Exch2013.careexchange.in’ Version 15.0 (Build 847.0), proxy server
‘Exch2013.careexchange.in’ 15.0.847.31 caps:1FFFCB07FFFF.
8/10/2015 1:19:17 PM [Exch2013] Connected to source mailbox ”, database ‘Public Folder Database 1080091062’,
Mailbox server ‘Exch2010.careexchange.in’ Version 14.3 (Build 248.0).
8/10/2015 1:19:17 PM [Exch2013] Request processing continued, stage IncrementalSync.
8/10/2015 1:19:17 PM [Exch2013] Folder hierarchy changes reported in source ”: 0
changed folders, 0 deleted folders.
8/10/2015 1:19:18 PM [Exch2013] Incremental Sync
‘4ac2597d-1bb0-4310-80f6-61f39aaec7f3’ completed: 0 hierarchy updates, 0 changed messages.
8/10/2015 1:19:18 PM [Exch2013] Stage: IncrementalSync. Percent complete: 95.
8/10/2015 1:19:18 PM [Exch2013] Final sync has started.
8/10/2015 1:19:18 PM [Exch2013] Relinquishing job because the mailbox is locked.
The job will attempt to continue again after 8/10/2015 1:24:18 PM.
Please read Part1 for better understanding –
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 2
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 3
Scenario 2: Two Companies Sharing by a CEO – This looks little tricky to understand but simple as that.
In this scenario we have Two Organizations and One CEO or Board members are shared .
Where ORGA users should not see ORGB Users in their Global Address list as they are different entities or departments.
But CEO should see both the Organization Employees in his GAL (Global Address list)
And CEO should be listed for Both of the Organizations
Please refer the below link and have 2 organizations created as explained in Scenario1 because
the initial steps are very much the same
For Organization A, I have used Custom attribute1
Custom attribute1 = ORGA
For Organization B, I have use Custom attribute2
Custom attribute2 = ORGB
Now I won’t apply Any Address book policy for my CEO as he doesn’t want to be restricted from viewing anyone.
Note – He will be looking at the Default Global Address list
But when employees from both the organizations searches the CEO in their Global address list he has to be listed.
Now you must understand the criteria we set for ORG A
Any user who has Custom attribute1 = ORGA will be listed in ORGA’s Global Address list
Now I will Set the Customattribute1 = OrgA for my CEO
Get-mailbox CEO | set-mailbox –customattribute1 ORGA
Now my CEO will be Listed in Organization A , Global Address list , OAB , Address list
As Similar
To have my CEO listed in Organization B
Now I will Set the Customattribute2 = OrgB for my CEO
Get-mailbox CEO | set-mailbox –customattribute2 ORGB
Now my CEO will be Listed in Organization B’s Global Address list , OAB , Address list as well
Example for User1-ORGA GAL –
Hope you have understand to implement ABP in Shared CEO Environment.
—-
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 2
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 3
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 2
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 3
What is Address Book Policy with short history
In Layman’s Term Every Department will See their own Global Address list.Commercial GAL segregation wasn’t Supported in Exchange 2003/2007.It was supported in HMC 4.5 – Exchange 2007/Exchange 2010 /hosted – Both the products were dropped by Microsoft.From Exchange 2010 SP2 Global Address list segregation was supported commercially and internally,It was easy to view and manage through Management Console.For commercial guys it was easy to integrate with control panel as everything can be created and managed using powershell.
You need to Perform Some Check Lists before implementing Address Book Policies in your environment.
1. Address book Policies will work only on Exchange 2010 Service Pack 3 or later severs.
2. Exchange Servers should not be installed on (Global Catalog Servers)GC or (Domain Controllers) DC where it will break the Address book policies while viewing from Outlook Clients.
3.Any Client Device or Client Software which can access Active Directory directly for Directory Access then ABP will fail to work
For Example like hard coding Outlook to Domain controllers, Also old clients Entourage 2008,Outlook for Mac 2011
4. Outlook clients should be at least – Outlook 2007 or later
Let see some different Scenarios,Before Getting into Address book Policies we should first plan how we are going to Segregate the users
There are Various filters you can use to segregate users,Refer Link for Filterable properties– https://technet.microsoft.com/en-us/library/bb738157(v=exchg.150).aspx
But we have something called Custom Attributes,We have up to 15 Custom attributes where we can use to Segregate users
Personally , Segregation is much more easier and Easily manageable using Custom attributes ,In Simple Words Experts Prefer Custom Attributes, Still some companies are already segregated using Company, Department,City. Go through whole article so that you can decide which will be suitable for you. you should decide wisely here. Cause it should be flexible for you while you expand then environment.
Scenario 1: Two Separate Entities in One Exchange Organization
or Two Separate Departments in One Exchange Organization.
Motive of the Scenario Organization A users should not be export to Organization B users.
First we will plan to segregate the Users
For Organization A , I will use Custom attribute1
Custom attribute1 = OrgA
For Organization B , I will use Custom attribute2
Custom attribute2 = OrgB
We got to Create a Separate Address book policy for Every Organization.Where each organization will be assigned with their own Address book policy.
Before creating a Address Book Policy
We need to do four tasks for each Organizations to segregate them using Address Book Policies
1. Global Address list
2. Address list
3. Rooms list
4. Offline Address book
Once we create Address book policies and assign to users, Note that each User can have only one Address book policy.
Note : Address Book Policy Routing agent : GAL1 user can view the information residing in contact cards of the GAL2 user. To avoid that
you can configure the ABP Routing Agent, If that level of separation is not required . you can safely skip these process.
When the ABP Routing agent is installed and configured, users that are assigned to different GALs appear as external recipients and they can’t view external recipients’ contact cards.
Use below link if your going to enable it. Otherwise please continue.
1. Creating a Global Address list
Need Exchange Management Shell to create Global Address list,
Where users with Custom attribute 1 with value ORGA will be showing up in their Address list,
New-GlobalAddressList -Name "ORGA-GAL" -RecipientFilter {(CustomAttribute1 -eq "ORGA")}
2 . Creating a Address list
Where users with Custom attribute 1 with value ORGA will be showing up in their Address list
New-AddressList -Name "ORGA-AL" -RecipientFilter {((RecipientType -eq 'UserMailbox') -or (RecipientType -eq "MailUniversalDistributionGroup") -or (RecipientType -eq "DynamicDistributionGroup")) -and (CustomAttribute1 -eq "ORGA")}
3. Creating a Rooms list
Where users with Custom attribute 1 with value ORGA will be showing up in their Rooms list
New-AddressList -Name ORGA-Rooms -RecipientFilter {(Alias -ne $null) -and (CustomAttribute1 -eq "ORGA")-and (RecipientDisplayType -eq 'ConferenceRoomMailbox') -or (RecipientDisplayType -eq 'SyncedConferenceRoomMailbox')}
4. Creating Offline Address book
Assign the Global Address list created for OrganizationA for the Org A offline address book
New-OfflineAddressBook -Name "ORGA-OAB" -AddressLists "ORGA-GAL"
Created Offline address book Successfully
Lets create an Address book Policy to Get them linked under one umbrella.
Now Going to Create an Address book Policy for Organization A users
New-AddressBookPolicy -Name "OrgA-ABP" -AddressLists "\ORGA-AL" -OfflineAddressBook "\ORGA-OAB" -GlobalAddressList "\ORGA-GAL" -RoomList "\ORGA-Rooms"
Created an Address book policy successfully !!
Now we will Learn how to Apply Custom attributes for Users and other Active Directory objects
Open Exchange Administration Center (EAC) – Recipients – Properties of User Mailbox – Click on more options.
You can have the Custom Attribute 1 Value Set for One User for Testing Purposes
Or
To Apply for One user using Exchange Management Shell :
You can run in Exchange Management Shell
Get-mailbox "User1" | Set-mailbox –customattribute1 "ORGA"
To apply for all the mailboxes :
Get-mailbox | Set-mailbox –customattribute1 "ORGA"
To apply for the Users in a Specific Database :
Get-mailbox –database "Database Name" | Set-mailbox –customattribute1 "ORGA"
To Apply for one Distribution group :
Get-DistributionGroup "Group1" | Set-Distributiongroup –customattribute1 "ORGA"
To Apply for one Dynamic Distribution Group :
Get-DynamicDistributionGroup "Group1" | Set-Distributiongroup –customattribute1 "ORGA"
Now to View and Understand Better – Click on More options (***) – Add/Remove Columns
Choose Custom Attributes 1 and 2 which you want to view in Recipient Configuration
Now you can see the values assigned on the Users
Now we can Apply Address book Policy for a Specific User
Exchange Admin Center (EAC) – Recipients – Mailboxes – Properties of User Mailbox – Mailbox features – Address Book Policy
Now Logging into OWA as User1-ORGA am seeing ORGA users alone in the Global Address list
You can log into Outlook as user1-ORGA and test the same.
Now Coming into the topic of assigning Email Addresses for the virtual organizations mailboxes,If you are planning to Give Different Domain Names for this Organizations
Custom attributes will make things Simple for us, as we can use the same filter for applying the email address polices as well.
First we will Create a Accepted Domain for ORGA –
EAC – Mail flow – Accepted Domains
Enter Name and Accepted domain and Click on Save.
Now will create a Email Address Policy where it will Stamp only for ORGA users
Enter policy Name and Click on “+” below Email Address format.
Choose the Accepted domain we just created. Click save.
Click on add rule and specify the custom attribute value1 ORGA. You can preview before saving as well.
Now you can see that OrgA users are Stamped with ORGA.com
Great !!
Now ORGA is Ready
Lets make the ORGB ready – Its just the same thing but am going to use CustomAttribute2 as ORGB and going to use Commands as you are familiar now
As We know already we need to Create 4 things for an Organization to Implement Address Book Policies
1. Global Address list
2. Address list
3. Rooms list
4. Offline Address book
1. Creating a Global Address list
Need Exchange Management Shell to create Global Address list,
Where users with Custom attribute 2 with value ORGB will be showing up in their Address list,
New-GlobalAddressList -Name "ORGB-GAL" -RecipientFilter {(CustomAttribute2 -eq "ORGB")}
2 . Creating a Address list
Where users with Custom attribute 1 with value ORGA will be showing up in their Address list
New-AddressList -Name "ORGB-AL" -RecipientFilter {((RecipientType -eq 'UserMailbox') -or (RecipientType -eq "MailUniversalDistributionGroup") -or (RecipientType -eq "DynamicDistributionGroup")) -and (CustomAttribute2 -eq "ORGB")}
3. Creating a Rooms list
Where users with Custom attribute 1 with value ORGA will be showing up in their Rooms list
New-AddressList -Name ORGB-Rooms -RecipientFilter {(Alias -ne $null) -and (CustomAttribute2 -eq "ORGB")-and (RecipientDisplayType -eq 'ConferenceRoomMailbox') -or (RecipientDisplayType -eq 'SyncedConferenceRoomMailbox')}
4. Creating Offline Address book
Assign the Global Address list created for OrganizationB for the Org B offline address book
New-OfflineAddressBook -Name "ORGB-OAB" -AddressLists "ORGB-GAL"
Lets create an Address book Policy to Get them linked under one umbrella.
Now Going to Create an Address book Policy for Organization A users
New-AddressBookPolicy -Name "OrgB-ABP" -AddressLists "\ORGB-AL" -OfflineAddressBook "\ORGB-OAB" -GlobalAddressList "\ORGB-GAL" -RoomList "\ORGB-Rooms"
To apply in Bulk for all the Users in a Database –
Get-mailbox –Database "ORGB-Database" | set-mailbox –addressbookpolicy ORGB-ABP
Now Logging into OWA as User3-ORGB we can see only ORGB users alone in the Global Address list
You can log into Outlook as Test1-ORGB and test the same for Offline address book.
New-AcceptedDomain –name "ORGB.com" –DomainName "ORGB.com" –DomainType "Authoritative"
Now Creating an Email Address Policy for ORGB as similar we did for ORGB
And apply the email address policy.
Now Both the Organizations are Ready to use. And They have been Segregated with Different GlobalAddresslists
Will Get Back with More Scenarios !!
—-
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 2
How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 3