Todays Lesson Learned – Lync and Exchange UM integration when the UM server is in another subdomain

This is a follow-up post in a series called Todays Lesson Learned started by fellow Lync MVP Tommy Clarke with this post: Todays lesson learned–Exchange 2010 upgrade with Active Sync and MobileIron and my follow up post on: Todays Lesson Learned – Lync Server 2010 and ST node for OpsMgr 2007 R2 It is a blog series noting down “learn from my mistakes” and “gotchas that can stop an entire project” type of problems with learning by doing and learning the hard way.

I was doing an Exchange UM integration with Lync. Everything worked fine and I was following fellow MVP blog article by Jeff Schertz: http://blog.schertz.name/2010/11/lync-and-exchange-um-integration/

The Problem

  • When I got to the point where I was going to run the Exchange script exchucutil.ps1 on the Exchange UM server I got the following error

Using Global Catalog: GC://”Different subdomain”

The UM server wasn’t able to read the Communications Server pool objects. Verify that Communications Server is deployed in this Active Directory forest and you’re a member of the RTCUniversalServerReadOnlyGroup group or have sufficient rights to read this Active Directory container object.Additional information:Group RTCUniversalServerAdmins couldn’t be found.

Probable Cause

  • The cause of this was that Exchange Schema extension was done in another subdomain.
  • When the Get-Ucpools.ps1 script triggered it could not find the Lync security groups to access the Lync pool configuration.

The Solution

  • As the blog depicts the solution was to edit the Get-Ucpools.ps1 script that is used by the ExchUcUtil.ps1 script
    • Make a copy of the original script before editing
    • Remember to open NotePad “as administrator”, else you can not save the script
  • Comment out the original global catalog discovery line
    • #$entry.psbase.Path = “GC://” + $globalCatalog
    • $entry.psbase.Path = “GC://MYGCin.Domain.com”
  • Add a local domain controller that is also a global catalog
  • Save the script
  • Rerun ExchUcUtil.ps1