John Yassa's Blog

Home » 2014 » April

Monthly Archives: April 2014

Cross-premises Calendar viewing is unavailable in a hybrid deployment of Exchange Online in Office 365 and on-premises Exchange Server

We have a hybrid config., with some mailboxes in Office 365, and some mailboxes on-premise.

An Office 365 mailbox cannot view the calendar of an on-premise mailbox, and vice verse.

Error in Outlook trying to open a shared calendar ‘could not be updated’

Error in Outlook trying to view calendar of another mailbox using Scheduling assistant  ‘could not be updated’ as below screen

Error in OWA opening a shared calendar ‘This folder couldn’t be opened.  You might not have permission to open it, or it might not exist anymore’

FreeBusy on outlook 2013

Now the solution will be to run the both command on the exchange server:

Set-AutodiscoverVirtualDirectory “SERVER\Autodiscover (Default Web Site)” -WSSecurityAuthentication $True

Set-WebServicesVirtualDirectory -identity “EWS (default web site)” -WSSecurityAuthentication $true

This two command solved my problem

Exchange Server Mailbox Statistics Report Tool

Here is an exclusive application to retrieve statistics for all mailboxes in a specified database. The tool currently supports Exchange Server 2010 and 2013. Install the product on one of your Exchange servers.


The tool retrieves mailbox statistics which includes Folder Count, Total Items, Associated Items, Deleted Items, Total Items Size, Deleted Items Size, Oldest Item Date, Newest Item Date, Items Age, Mailbox Age and Quota details. It also includes an additional option named “Archive Statistics Planner” which will let you search mailboxes and provide statistics report with specific dates. More options will be added in future releases.


  • You should run this application directly on one of your Exchange servers which holds any of the following roles: Client Access, Hub Transport and Mailbox. Running the application from servers/workstations without active server role is not supported!
  • Set PowerShell execution policy to either RemoteSigned or Bypass (Launch Windows PowerShell with Run as Administrator > Execute the following command on shell: Set-ExecutionPolicy “RemoteSigned”
  • Exchange Server 2013 Support: It seems to be an old bug (where application failed to load required modules on Exchange Server 2013) reappears in latest version. Download a patch from here ( and extract an executable from the zip file and place into the following folder: C:\Program Files\Exchange Server Mailbox Statistics Tool\ (assuming that you already installed latest version of Mailbox Statistics Tool – v1.6.2) Replace an existing executable with this patch. This patch applies to servers running on Exchange Server 2013 only!

Usage Instructions:

  • Domain Controller: Is an additional option and selecting this field is not mandatory.
  • To scan individual mailboxes, Select MAILBOX mode. Specify multiple mailboxes by separating with comma in the “Specify Individual Mailboxes” field
  • To scan individual mailbox, Select MAILBOX mode. Retrieve Exchange Servers > Select Server > Retrieve Databases > Select Database > Retrieve Mailboxes and then select a mailbox
  • To scan all mailboxes in a database, Select DATABASE mode. Retrieve Exchange Servers > Slect Server > Retrieve Databases > Select Database
  • To scan all mailboxes in a server, Select SERVER mode. Retrieve Exchange Servers > Select Server
  • To search mailboxes for statistics with specific dates, go to Options menu and click on “Archive Statistics Planner” which will enable both Oldest Item Date and Newest Item Date fields.
  • To select additional statistics, go to Options menu > Statistics
  • You can select either of the following report formats: HTML or CSV

Below is an example of how to run the report and initiate a Database report

1- Installation


2- Run the application


3- Now choose the Exchange Server  and the Database you want to run the report on and press on Perform Search


4- Sample report will be generated as below


5- You can send this report to yourself by mail as below



Download Here


Mailbox still marked as being moved after failed move request to Office 365

After a failed move request, sometimes (for unknown reason) the mailbox is still marked is being moved and cannot be removed again… the mailbox is shown with a green icon on the EMC (Exchange Management Console), however it cannot be seen on the “Move Request” section or with Get-MoveRequest command and cannot be cleared with the Remove-MoveRequest command.


1. Open ADSIEDIT and navigate to the OU where your broken user account is stored.
2. Locate the user account, right-click on it and then choose “Properties”.
3. Click on the “Filter” button and make sure “Show only attributes that have values” is checked.
4. Scroll down the attributes and search for an entry called “msExchMailboxMoveRemoteHostName”.
5. Click on the “Edit” button.
6. Click on the “Clear” button.
7. Click the “OK” button.

Sizing Guidance Updates For Exchange 2013 SP1

With the release of Exchange 2013 SP 1, it’s time to revise our sizing guidance given feedback from customers, observations from our own large-scale deployments, and requirements associated with new and changed components in SP 1. In addition to this brief article, I’ve also updated the original blog post with updated formulas and tables to reflect the changes described here.

There are two specific changes that need to be highlighted:

CAS Processor Sizing

With the introduction of the MAPI/HTTP protocol, our existing sizing guidance for CAS processor utilization needs to be changed. Usage of MAPI/HTTP has a fairly dramatic increase in rate of requests handled by the CAS role, when compared to requests generated by clients using RPC/HTTP. As each connection has a measurable amount of processing overhead, this results in an overall increase to our CPU requirements on CAS, moving from a 1:4 ratio of CAS to Mailbox processor cores, to a 3:8 ratio (a 50% increase). It’s important to call out that MAPI/HTTP is disabled by default, as we expect that customers will want to carefully evaluate the deployment requirements and impact of MAPI/HTTP before enabling it. Because it is disabled by default, existing Exchange 2013 deployments do not need to immediately add more CPU resources at the CAS layer. Instead, we expect that additional capacity will be considered as part of the evaluation and deployment process for MAPI/HTTP. We do anticipate that over time it will become the standard method of connectivity for Outlook clients so it’s important to include these requirements in our sizing guidance as early as possible.

It’s also critical to deploy .NET Framework 4.5.1 if you intend to use MAPI/HTTP, as it contains an important fix that impacts the performance and scalability of MAPI/HTTP at the CAS layer.

Ross has updated the Exchange Server 2013 Server Role Requirements Calculator to take into account this guidance change in version 6.3.

Pagefile Sizing

As memory requirements have increased for Exchange, our historical guidance for sizing the pagefile has become more and more challenging from a deployment perspective. Previously, our guidance was to set a fixed pagefile size equal to the size of RAM + 10MB. On servers that are commonly deployed with 128GB of RAM or more, requiring a pagefile sized to RAM+10MB results in a large amount of space consumed (typically on the system drive) with questionable benefit. In our large-scale internal deployments, we have been running with a cap on pagefile size for quite some time, and as a result we are comfortable recommending that all of our on-premises customers follow that same guidance. Moving forward with Exchange 2013, we recommend a fixed pagefile of the smaller of RAM size + 10MB or 32,778 MB (which is 32GB + 10MB). Hopefully this will free up some needed space on your servers.

Source : The Exchange Team Blog

Remove the latest Public Folder Database from an Organization

To remove the last public folder database from an organization, perform the following steps:

1- Verify that there is no OAB are configured for Public folder distribution as below



2- Remove all Public Folders from Public Folder Database as below

a- Use Power shell to delete user public folders

Get-PublicFolder -Server <server containing the public folder database> “\” -Recurse -ResultSize:Unlimited | Remove-PublicFolder -Server <server containing the public folder database> -Recurse -ErrorAction:SilentlyContinue

b- Use Power shell to delete System Public Folders

Get-PublicFolder -Server <server containing the public folder database> “\Non_Ipm_Subtree” -Recurse -ResultSize:Unlimited | Remove-PublicFolder -Server <server containing the public folder database> -Recurse -ErrorAction:SilentlyContinue

3- Remove the Last Public Folder Database using Power shell

a- Remove-PublicFolderDatabase -Identity “PFDB01”

b- A message appears asking you to confirm that you want to perform this action. Enter Y

c- A warning appears, indicating that the database was removed and reminding you to manually remove the database file. The default location for these files is <Exchange installation path\v14\Mailbox\<public folder database name>.

4- Delete the Public folder Database files manually

When you remove a public folder database, the Exchange database (.edb) file for the database and other files associated with the database aren’t automatically deleted. You must delete the public folder database files manually. The default location for these files on an Exchange 2010 server is <Exchange installation path>\v14\Mailbox\<public folder database name>. The default location for these files on an Exchange 2007 server is C:\Program Files\Microsoft\ExchangeServer\Mailbox\<storage group name>\<public folder database name>.

Add or Update a User Picture to the Active directory

This is a quick article to show how easy it is to update an Active Directory user account with a photo of the user.

The Active Directory thumbnail Photo attribute is used by several applications to display a picture for the user account. Microsoft Outlook is one such application that uses this attribute to display the picture of people you send and receive emails to and from (within an Active Directory domain).


Now, for the fun bit! Let’s assume we have user John, and we have saved John’s photo to C:\photos\John.jpg

In two lines of code, we can update John’s photo.

Get the photo, using the Get-Content Power Shell cmdlet, using the encoding type byte. Store the photo as a byte array in the $photo variable. Then update Active Directory using the Set-ADUser cmdlet, passing the byte array ($photo) to the thumbnailPhoto attribute.

$photo = [byte[]](Get-Content "C:\photos\John.jpg" -Encoding byte)            
Set-ADUser John -Replace @{thumbnailPhoto=$photo}

To shorten this to one line of code, we could write this as;

Set-ADUser John -Replace @{thumbnailPhoto=([byte[]](Get-Content "C:\photos\John.jpg" -Encoding byte))}

Now the Photo of John will appear in Outlook and Lync as below:

1- Outlook


2- Lync

%d bloggers like this: