How to Install and Configure Exchange 2013 Edge Server

It's been long time I wrote any articles, but it's good to be back. In this article we will learn how to install and configure Exchange Server 2013 Edge Transport Role.
LAB environment:
  • 2 Windows Server 2008 R2 Domain Controller
  • 1 Exchange Server 2013 CU5 with Mailbox and CAS Server Role on Windows Server 2012 R2
  • 1 Exchange Server 2013 CU5 Edge Server Role on Windows Server 2012 R2
  • 2 NIC Card, 1 Internal and 1 External

The Edge Transport Server is not an Active Directory domain joined server, but it should have a normal FQDN which should be resolvable from the Internet. In the lab I am using for the server FQDN.

After installing the Windows Server 2012 R2 rename the server as per your requirement and add the Suffix, in my case it's

As the Edge Transport server is using the internal DNS servers for name resolution this should not be a problem on the Edge Transport Server, but on the internal network you have to add the Edge Transport server manually to the internal DNS servers. Create Host record in DNS for Edge Server.

First we will have to install prerequisites for Exchange 2013 Edge Transport Server by running the below commands:

Install-WindowsFeature RSAT-ADDS
Install-WindowsFeature ADLDS

Start the installation of Edge Transport Server 2013.

Next part is to make sure that Edge Server is able to ping the Mailbox Server and vise versa.
When I pinged the Mailbox Server from Edge Server it failed.

Make sure you disable the Windows Firewall on both Mailbox and Edge Server.

After disabling the Firewall you can ping the server both way.

Now the next part is to create the Edge Subscription.
To create the Edge Subscription file open the Exchange Management Shell and enter the following command:
New-EdgeSubscription –FileName C:\EdgeSubscription\Edge01.xml

Copy the XML file from Edge Transport to Mailbox Server to a location on the local disk in my case it's C:\EdgeSubscription drive of the Exchange 2013 Mailbox server. To import the XML file open the Exchange Management Shell and enter the following command:
New-EdgeSubscription -FileData ([byte[]]$(Get-Content -Path “C:\EdgeSubscription\Edge01.xml” -Encoding Byte -ReadCount 0)) -Site “Default-First-Site-Name”

Once you are done with Importing XML file on Mailbox Server successfully you need to start the  Edge Synchronization, to start it we need  run Start-EdgeSynchronization on Mailbox Server.

In the output above you see Result: CouldNotConnect and FailureDetails: The LDAP server is unavailable, don't panic give this process sometime and you will see Result: Success and FailureType: None as shown in below image.

Now it's time to get this newly installed Edge Server to work specifying it in a Smart Host on existing Send Connector on Mailbox Server or creating the new Send Connector all together. We are going to create new Send Connector named Internet.

Note: Make sure you restart MSExchange Transport Service on Mailbox Server after creating the Send Connector.


Cumulative Update 6 for Exchange Server 2013

Microsoft released Cumulative Update 6 for Exchange Server 2013. You can download from here...

This Cumulative Update comes with several and some of the important fixes. Some of those are...

  • Blank page after you sign in to Exchange Server 2013 EAC (formerly ECP)
  • OAB generation fails if FIPS is used in an Exchange Server 2013 environment
  • You cannot access the archive mailbox of a delegated user after enabling MAPI over HTTP
  • Exchange Server 2010 public folder replication fails in an Exchange Server 2013 environment
  • Duplicate mailbox folders after migration to Exchange Server 2013

List of Issues that the cumulative update resolves KB2961810


How to configure Exchange Server 2013 Virtual Directories

After you installed Exchange Server Certificate and enabled the services on Certificate like IIS, SMTP, UM etc. You will have configure the virtual directories so that you can access the resources like OWA, ECP, Autodiscover, ActiveSync, OutlookAnywhere from Exchange Server.
There are several articles available on the internet, still I thought of writing one [for myselft ;) ]
Here is the list of commands you need to run to configure the different Virtual Directories. Run Get- commands to check if you have configured the Virtual Directories properly or not.

Exchange Control Panel:
Get-ecpVirtualDirectory -Server "ExchangeServerName" | Set-ecpVirtualDirectory -InternalURL -ExternalURL
Get-ECPVirtualDirectory -Server "ExchangeServerName" | Fl InternalURL,ExternalURL

Outlook Web App:
Get-OwaVirtualDirectory -Server "ExchangeServerName" | Set-OwaVirtualDirectory -InternalURL -ExternalURL
Get-OWAVirtualDirectory -Server "ExchangeServerName" | Fl internalUrl,ExternalURL

EWS (Exchange Web Services):
Get-WebservicesVirtualDirectory -Server "ExchangeServerName" | Set-WebservicesVirtualDirectory -InternalURL -ExternalURL
Get-WebservicesVirtualDirectory -Server "ExchangeServerName" |Fl internalURL,ExternalURL

Set-ClientAccessServer "ExchangeServerName" -AutodiscoverServiceInternalUri
Get-ClientAccessServer "ExchangeServerName" | Fl AutodiscoverServiceInternalUri

Get-ActiveSyncVirtualDirectory -Server "ExchangeServerName" | Set-ActiveSyncVirtualDirectory -InternalURL -ExternalURL
Get-ActiveSyncVirtualDirectory -Server "ExchangeServerName" | Fl InternalURL,ExternalURL

Offline Address Book:
Get-OABVirtualDirectory -Server "ExchangeServerName" | Set-OABVirtualDirectory -InternalUrl -ExternalURL
Get-OABVirtualDirectory -Server "ExchangeServerName" | Fl InternalURL,ExternalURL


Set-OutlookAnywhere -Identity "ExchangeServerName"\Rpc (Default Web Site)" -InternalHostname -ExternalHostName -InternalClientAuthenticationMethod ntlm -InternalClientsRequireSsl:$True -ExternalClientAuthenticationMethod Basic -ExternalClientsRequireSsl:$True
Get-OutlookAnywhere -Identity "ExchangeServerName"\rpc (Default Web Site)" |fl InternalHostName,InternalClientAuthenticationMethod,InternalClientsRequiressl,


BitTitan Data Encryption for your email in the cloud

Maintain ownership and control of your information with BitTitan Data Encryption, a monthly service that ensures your company’s internal email security by encrypting your Office 365 Outlook data. BitTitan Data Encryption, the latest addition to the BitTitan suite of offerings, provides a persistent layer of protection for your email in the cloud.
Moving to the cloud makes a lot of sense – it saves money, simplifies support, and allows a flexible approach to IT as your company grows. It’s definitely the best option in today’s marketplace. But when you give up control and place your vital information in someone else’s hands, there are security and privacy questions you need to consider:
  • How do you make sure that your information stays private?
  • Where are the keys that protect your data stored?
  • How do you prevent loss of information from theft, accidents, or government snooping?
  • Do your existing security measures account for all states of data? At rest, in use, and in transit?
  • How do you make sure you are complying with laws that make you fully liable for the protection of private personal, medical, or financial information you handle?
    For more information visit 

    Script to get Mailbox Information

    I was deploying archiving solution for Exchange 2010 for more than 20K seats environment. And I have been asked by the vendor to find certain information for all the Mailboxes in exchange environment, like TotalItemSize, TotalDeletedItemSize, ItemCount and DeletedItemCount.

    I came up with the below script which made the JOB easy. I ran the script per Exchange Server, but you can also run it per Mailbox Database, you just need to change the switch from -Server to -Database.

    Get-Mailbox -Server "MailboxServerName" -ResultSize Unlimited -IgnoreDefaultScope -RecipientTypeDetails UserMailbox,RoomMailbox,EquipmentMailbox,SharedMailbox | Get-MailboxStatistics | Select DisplayName,@{expression={$_.TotalItemSize.value.ToMB()};label="TotalItemSize(MB)"},@{expression={$_.TotalDeletedItemSize.Value.ToMB()};Label="TotalDeletedItemSize(MB)"},ItemCount,DeletedItemCount,Database,OrganizationalUnit | Export-Csv C:\temp\Content.csv

    If you want to run it across your Exchange environment without using Server or Database switch, then just run Get-Mailbox only.
    You can also add other attributes like SentItems, Attachment etc. to the script.
    This script can be run on Exchange Server 2010 and 2013.