Kindly note the change in RPC Client Access behavior with Exchange 2010 SP2 Rollup 3 and up: 

  • When moving Mailboxes between Active Directory Sites: By default, once you install SP2 RU3 (or the later RU4), and you move mailboxes between Active Directory sites, all versions of Outlook will get prompted to restart and the Outlook profile’s RPC endpoint will be updated ““The Microsoft Exchange Administrator has made a change that requires you quit and restart Outlook”.
    • If you want to disable this behavior and move mailboxes between active directory sites without having the outlook profile updated (thus no outlook restart prompt), you can do so using this registry setting on the Client Access server(s):
    • HKLM\System\CurrentControlSet\Services\MSExchangeRPC\ParametersSystem
    • Value Name: EnablePreferredSiteEnforcement
      Data Type: REG_DWORD
      Value: 0
       
  • With Cross-Site Database Switchover/Failover (*over) Events
    • Prior to this rollup changing the property AllowCrossSiteRPCClientAccess(using Set-DatabaseAvailabilityGroup) to true of false didn’t have any effect on the client behavior.
    • The AllowCrossSiteRPCClientAccess property now controls whether cross-site RPC client access is allowed with database switchover/Failover.
    • With this rollup the default value of AllowCrossSiteRPCClientAccess property is $False, the Outlook profile’s RPC endpoint will be updated to be the RPC Client Access Server array that is in the same AD site where the database is active and mounted.
    • If you set the AllowCrossSiteRPCClientAccess property value to $true,  in the event that the database is activated cross site, the users will continue to leverage the RPC Client Access array in the AD site where the mailbox database with the lowest activation preference value resides as their connectivity endpoint.

 

  • Some users may get the Restart Outlook prompt if they have accounts mapped in their profile that need to be accessed using a different CAS array than the one they use to access their own mailboxes (EnablePreferredSiteEnforcement = 0 will solve this also) 
     
  • EnablePreferredSiteEnforcement and AllowCrossSiteRPCClientAccess are Two different settings controlling different things.
     
  • In datacenter activation scenario (following http://technet.microsoft.com/en-us/library/dd351049 ), the value of AllowCrossSiteRPCClientAccess doesn’t matter.  This only matters when you have a cross-site database *over event and you want to control whether primary CAS still services the request or switch to another CAS/CAS Array.
     
  • To get same functionality that you had prior to installing SP2 RU3 with (SP2 RU3& up) in place, you need to do two things:
    • You have to set AllowCrossSiteRPCClientAccess to $true (no change to RPC endpoint with Cross-Site Database *over Events)
    • Use the registry entry EnablePreferredSiteEnforcement and set it to 0 on Client Access servers. (no change to RPC endpoint with mailbox moves )
       
  • Kindly note the following Outlook Anywhere behavior related to this RPC client access change http://support.microsoft.com/kb/2725008
     
  • More information is on Exchange team blog: http://blogs.technet.com/b/exchange/archive/2012/05/30/rpc-client-access-cross-site-connectivity-changes.aspx