37 C
Dubai
Saturday, May 3, 2025
Home Blog Page 68

Quick Tip : Entering Exchange Server 2013 Product key using Shell

Open Exchange Management Shell –

Set-ExchangeServer EXCH01 -ProductKey 86VXV-O2HKP-32RH4-7JP6V-GF4BQ

image

Restart Information Store Services to Take Effect.

Get-ExchangeServer | FT Name,Edition,*Trial* -Auto

image

How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 3

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 –

  • Class A Students won’t see Class B Students
  • Class A Students will see only Class A teachers
  • Class B Students will see only Class B teachers
  • Teachers can view all their Co-teachers,viewing their Class students and the principal
  • Principal(Like CEO) will See , All Teachers and Students.

image

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

image

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

image

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

image

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")}

image

2. Address list

New-AddressList -Name "ClassA-AL" -RecipientFilter {((RecipientType -eq 'UserMailbox') -or (RecipientType -eq "MailUniversalDistributionGroup") -or (RecipientType -eq "DynamicDistributionGroup")) -and (CustomAttribute1 -eq "ClassAStudent")}

image

3. Rooms list

New-AddressList -Name ClassA-Rooms -RecipientFilter {(Alias -ne $null) -and (CustomAttribute1 -eq "ClassAStudent")-and (RecipientDisplayType -eq 'ConferenceRoomMailbox') -or (RecipientDisplayType -eq 'SyncedConferenceRoomMailbox')}

image

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"

image

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

image

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

image

Going to my ClassAStudent1 Outlook Web Access  you can see their Teachers & co-students alone

image

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

image

Now you can see the principal listed for the Class A Students

image

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"

image

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

image

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

image

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

image

Now you can see the principal listed for the Class B Students

image

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")}

image

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"))}

image

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')}

image

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"

image

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

image

Now My TeacherA will See his ClassAStudents and Co-Teachers (With Customattribute3) and the Principal (with CustomAttribute1)

image

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

Rebuild an Index on Exchange 2013/2016 for Specific Databases

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

image

Go to the affected database location – Move the Catalog folder to a different location –

Start the above services back.

image

Content Index will kick off (This process takes time)– going to unknown –> Crawling –> Healthy.

image

image

Fatal error DataValidationException has occurred public folder migration Exchange 2010 to Exchange 2013

image

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.

  • Restarting Replication Service on Exchange 2010 made it through.
  • Restarting Information Store and Restarting Replication Service  (Not a great idea to try on the first instance. If you have no other options you can try it out.)

 

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.

How to Implement Address Book Policies in Office 365/Exchange 2013/2016 Effectively – Part 2

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

image

Please refer the below link and have 2 organizations created as explained in Scenario1 because

the initial steps are very much the same

https://www.azure365pro.com/how-to-implement-address-book-policies-in-office-365exchange-20132016-effectively/

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 –

image

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

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

 

  • ABP features are only available to customers with Office 365 for Enterprise (‘E’ plans) and Education (‘A’ plans)
  • The default for Office 365 for Enterprise customers is to allow 250 GALs, 250 OABs, 250 ABPs and 1000 ALs.

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.

image

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.

https://www.azure365pro.com/install-and-configure-the-address-book-policy-routing-agent-in-office365exchange-20132016/

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")}

image

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")}

image

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')}

image

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"

image

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"

image

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

image

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

image

Choose Custom Attributes 1 and 2 which you want to view in Recipient Configuration

image

Now you can see the values assigned on the Users

image

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

image

Now Logging into OWA as User1-ORGA  am seeing ORGA users alone in the Global Address list

image

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

image

Enter Name and Accepted domain and Click on Save.

image

Now will create a Email Address Policy where it will Stamp only for ORGA users

image \

Enter policy Name and Click on “+” below Email Address format.

image

Choose the Accepted domain we just created. Click save.

image

Click on add rule and specify the custom attribute value1 ORGA. You can preview before saving as well.

image

image

Now you can see that  OrgA users are Stamped with ORGA.com

image

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"

image

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

image

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"

image

Now Creating an Email Address Policy for ORGB as similar we did for ORGB

image

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

× How can I help you?