Configure Autodiscover Site Scope In Exchange 2010

Share & Comment

I was asked today about the steps to configure autodiscover site scope and I was surprised to find out that I hadn’t written about it before. I was thinking of giving a link to the article, but I have to write it first. So, here it goes.

Configuring site scope for autodiscover comes in only if you have multiple sites with clients connecting, say a company which spreads across the country or a global company with branches in many countries. Whatever the scenario is, the intention is to get Outlook 2007+ clients to pick up a local or closest CAS server as the SCP endpoint.

As an example, let’s take a company with branches in Paris, London and Berlin. Each country has their own datacenters with Exchange 2010 and users from each country are spread across different AD sites. To make sure that all French users always connect to a CAS server in Paris, we need to set the site scope. If no scope is set, a random CAS is used and the user might end up connecting to a server in a different country although a local server is available.

Run Get-ClientAccessServer | fl name, autodiscoversitescope to find out the present scopes in place, if any.


Let’s say we have three AD sites in France from which all staff connect. Run the following command to make sure that all users in France always connect to a sever in Paris.

Set-ClientAccessServer –identity “Paris CAS Servername” –AutodiscoverSiteScope “Site1, Site2, Site3”

If there are sites already defined and you want to add a couple more, the existing scope should be stored in a variable and new sites have to be added & applied (unless you want to type everything).

Run $sitescope = (Get-ClientAccessServer –identity “Paris CAS Servername” ).AutodiscoverSiteScope

Add the new sites by running $sitescope += “newsite1, newsite2”

Update the setting by running Set-ClientAccessServer –identity “Paris CAS Servername”  -AutodiscoverSiteScope $sitescope

If you have more number of CAS servers to be updated, store all CAS servers in a variable and update the settings.

Run $cas = Get-ExchangeServer | where-object {$_.IsClientAccessServer –eq $true –AND $_.Site –eq “site name”}

To update all servers, run $cas | Set-ClientAccessServer -AutodiscoverSiteScope $sitescope

Share & Comment
Subscribe for Updates
Never miss a blog post again
About the author: Exchange Architect, Blogger, Husband & Dad. I have been in IT for the last 11 years, with Exchange Server becoming the prime area in the last few years. I am active on TechNet forums & Experts Exchange.

3 comments… add one

  1. Ofer.E

    Are you referring to a scenario which User connects to his cas server or cas array when he is locally connected to his workplace in the lan (domain join) or you referring to outlook anywhere ?
    I thought that by default cas array are for specific sites and cannot spanned across .
    So if a user is connected to site “Paris” why would outlook tries to connect to another site if it has different Cas Array Name ?

    Can you explain ?
    Great site , I visit it daily
    Thank Uou

    1. Rajith Enchiparambil

      Hi Ofer.E,

      This is before connecting to the CAS Array. When Outlook 2007+ client is launched, it queries AD for SCP record, so that it can connect to one of the CAS server to retrieve all info needed to configure/launch the client.


  2. vedhapuri

    Hi ,

    How to Rename the Default Exchange 2010 database name, can you explain it its help full for us.

Leave a Comment