OAB Changes -Exchange 2013

Just a Quick look at the changes made in Exchange 2013 with respect to the Offline address book, 

Older versions of exchange had One Generation server (Mailbox server), But this is discontinued in Exchange 2013, Instead Organization mailbox or Arbitration mailboxes are brought into picture.

  1. Arbitration mailbox are capable of Provisioning the OAB,
  2. Only OAB Version 4 is available,
  3. Outlook 2K7 SP3 RU10 and above are supported client versions to access OAB from Exchange 2013
  4. Mailbox assistance service is responsible for generating the OAB
  5. Offline address book is Stored in Arbitration mailbox
  6. Command to get the list of arbitration mailbox which is capable to be involved in the OAB function,

 

Get-mailbox -arbitration | where {$_.PersistedCapabilities -Like “*oab*”}

 

  1. “OrganizationCapabilityOABGen” marks it as a generation
  2. No FDS – File Distribution service is used in CAS to pull the OAB files
  3. FDS Schedule is not flexible enough
  4. No more generation server

 

Quick work flow,

 

How it works in Exchange 2013 :

 

  • Outlook receives OAB URL from Autodiscover and reaches designated CAS 2013 through OAB URL.
  • Performs initial authentication for OAB.
  • Queries Active Directory and determines the closest Organization Mailbox for the requesting user.
  • Queries Active Directory again to determine the mailbox database hosting the Organization Mailbox.
  • Queries the Active Manager to determine the mailbox server where the mailbox database is active (mounted).
  • Proxies the request to the Mailbox server identified in step 4.
  • Retrieves OAB files and passes them to the client.

 Key points to note:

During the First Request from the client

Arbitration mailbox copies the oab in to the CAS fodler,

Going further all the connections are made to the path where the oab is placed in CAS,

Then in case of rebuild use

 

Update-offlineaddressbook

 

Set-mailbox <Mailbox identifier> -arbitration -oab $true (Create a new arbitration mailbox)

 

Specify a oab for a mailbox

Set-mailbox “mbx name” -Offlineaddressbook <Oab name>

“MSexchangeuSeoab” attribute to be set

 

More detailed information is available in the below links, Feel free to post in your queries here i will try my best to answer your questions, Have a good one !

http://blogs.technet.com/b/exchange/archive/2012/10/26/oab-in-exchange-server-2013.aspx

http://exchangemaster.wordpress.com/2013/04/02/beware-full-oab-downloads-after-installing-1st-exchange-2013-server-in-existing-0710-environment/

Delete items from multiple mailboxes in 2010 using EWS

$MailboxName = ‘Name@Mailbox’

$dllpath = “D:\EWS\Microsoft.Exchange.WebServices.dll”
[void][Reflection.Assembly]::LoadFile($dllpath)

$Service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP1)
$Service.AutodiscoverUrl($MailboxName,{$true})

$RootFolderID = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Root,$MailboxName)
$RootFolder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($Service,$RootFolderID)

$FolderView = New-Object Microsoft.Exchange.WebServices.Data.FolderView(1000)
$FolderView.Traversal = [Microsoft.Exchange.WebServices.Data.FolderTraversal]::Deep

$Response = $RootFolder.FindFolders($FolderView)

ForEach ($Folder in $Response.Folders) {
if($folder.DisplayName -eq “AName”) {
$folder.delete([Microsoft.Exchange.WebServices.Data.DeleteMode]::SoftDelete) } }

Script – Exchange 2007 – Delete mailbox items

Write-host “
#################Supporting Environment – Exchange 2007#####################
Script to remove items from a folder in user’s mailbox Multiple mailboxes
Adds full access mailbox permission to all the mailboxes
Moves all the items to a the target mailbox inside inbox\target folder
Once when the items are successfully removed, we can delete the target mailbox
Transcripts are saved in C:\trans.txt
############################################################################”

Start-transcript C:\trans.txt
$u = Read-host “

Enter the Account


write-host “

Enter the database name in this format Servername\Storage Group\Databasename
————————————–

$db = Read-host “Enter the Database name”
$s = Read-host “Server Name”
Write-host “
—————————————————————————
##Note: Please enter the folder name in “\foldername” format eg., “\outbox”
—————————————————————————

$F = Read-host “Folder from which items need to be deleted”
$tm = read-host “Enter the Target mailbox”

#Write-host “Do you wish to continue adding permission on all the mailboxes” -confirm:$true
#get-mailbox -server $s | % {add-mailboxpermission -user $U -accessrights Fullaccess -Identity $_}
Get-MailboxDatabase $db | Get-Mailbox | % {add-mailboxpermission -user $U -accessrights Fullaccess -Identity $_}

Write-host “Process Complete – Permission Granted”

#get-mailbox -server $s | % {Export-Mailbox -identity $_ -IncludeFolders “\outbox” -TargetMailbox $tm -TargetFolder “inbox\target” -DeleteContent -confirm:$false -Verbose}

Get-MailboxDatabase $db | Get-Mailbox | % {Export-Mailbox -identity $_ -IncludeFolders $F -TargetMailbox $tm -TargetFolder “inbox\target” -DeleteContent -confirm:$false -Verbose}

Write-Host “

**********End of Script*************”

Stop-transcript

=====================================================

Created the above script for deleting emails from a folder in multiple mailboxes (all at a time) – Database specific

This will be very useful when working on a log growth issue where in we need to check and remove items in user’s outbox folder. Its a pain to delete them one by one, Guess this will be useful.

Create a empty mailbox (eg., a mailbox named “target” and make sure the account through which the script is ran has full mailbox access

Before running this script, know what this is gonna do,

Script to remove items from a folder in user’s mailbox Multiple mailboxes

  •  Adds full mailbox permission to all the mailboxes to the user account which is entered.
    Moves all the items to a the target mailbox inside inbox\target folder
    Once when the items are successfully removed, we can delete the target mailbox
    Transcripts are saved in C:\trans.txt

Procedure:

  1.        Open EMS > go the path where you have placed the script > then type .\ Script_Removemailboxitems.ps1
  2.        Now the script is initiated and the transcript is by default saved in C:\trans.txt
  3.        Now the process starts,
  4.        It first adds full access permission on all the mailboxes in the provided mailbox database(database name entered)       for the account entered
  5.        Then it starts checking for the items in the appropriate folder which is provided as the target folder
  6.        It exports those items to  the target mailbox and deleted them from the source.
  7.        It’s done for all the mailboxes in the database.
  8.        It summarizes the changes made on all the mailboxes in the database and those are recorded in the C:\trans.txt
  9.       When you login to the target mailbox, it has all the items which was deleted from the source mailboxes ,

Run this on a test environment first and then put it on production.

Note: Also there are few line in the script which are hashed (#), those are for deleting mailbox items specific to a server

=

====================================================Technet post