Lync 2013 unified contact store (UCS) troubleshooting tips

I would like to share few troubleshooting tips based on UCS deployment experiences. Assume that, you had successfully deployed Lync 2013 and exchange 2013 in the organization and enabled UCS. However, client contacts were still not migrated  to exchange server. Following steps may help to narrow down the issue;

Is there any exchange connectivity errors on Lync client as mentioned below ? If so, verify auto discover configuration on exchange CAS server,

Run following command if you haven’t set the auto discover record on the CAS box. Also make sure that auto discover DNS record is accessible from client machine.

"Get-ClientAccessServer | Set-ClientAccessServer -AutoDiscoverServiceInternalUri https://autodiscover.domain.com/autodiscover/autodiscover.xml" .

Following PowerShell cmdlet would be helpful to identify if or not a user's contacts can be accessed through the Unified Contact Store. If it is failed , verify the UCS configuration.

 $cred = get-credential

Test-CsUnifiedContactStore -UserSipAddress testuser@domain.com -TargetFqdn lync.domain.com –UserCredential $cred

Following cmdlet  will test  Lync Server Storage Service status on a Front End Server.  Make sure that test result is successful , if not cross check Lync services manually.

Test-CsExStorageConnectivity -SipUri testuser@domain.com -Binding NetTCP -DeleteItem -HostNameStorageService pool.domain.com

Verify UCS service policy has been assigned to the users. Following cmdlet will list user’s service policy.

get-CsUser -Identity testuser

Verify partner application is successfully created ,following cmdlet would list the configuration of partner application.

Get-CsPartnerApplication

Enable centralized logging and select lyssanducs as tracing scenario. You should run this command from windows cmd window.

Clscontroller.exe –start –scenario lyssanducs –pools pool.domain.com

Stop the logging on the agent and output the log file to notepad. Following command would help you;

ClsController.exe -stop –scenario lyssanducs –pools pool.domain.com

Search-csclsLogging –computers  fe.domain.com –components lyss  –loglevel  all –outputfilepath  “c:\test.txt”

You can also use Lync debugging tool for collecting the logs. Following figure shows that Lync server has replied to contact subscription request that it has already migrated to exchange server.  

Comments

  • Anonymous
    January 01, 2003
    @Trevor - you just need to verify all Lync services are up and runing.

  • Anonymous
    January 01, 2003
    Thanks for the write-up Saleesh!

  • Anonymous
    January 01, 2003
    @Allan - What is the sip domain assigned to users ? Is it domain.local or domain.com ? Lync client will discover autodicover URL based on user's sip URI. Make sure that autodiscover record is pointed to CAS array.

  • Anonymous
    July 17, 2013
    I have Lync 2013 and the storage connectivity passes while the Unified Contact Store times out. You say test connectivity "manually"... How is that done?

  • Anonymous
    July 25, 2013
    Hi Saleesh, My users aren't migrated to UCS. I'm wondering, if it could be a problem that my lyncpool and autodiscover are configured with different domainnames. eg. Autodiscover.domain.com Lyncpool.internal.local When I run the test-commands from your article, all tests returns succes, so i'm try to figure out why i'm not migrated. Regards

  • Anonymous
    August 08, 2013
    The lync client performs lookup of exchange autodiscover based on user's mail attribute, which is almost always the primary SMTP address.

  • Anonymous
    August 19, 2013
    The comment has been removed

  • Anonymous
    June 27, 2014
    Having a hard time configuring this in lab, almost everything checks out ok but contacts are not migrated:

    OAuth check:
    [PS] C:Windowssystem32>Test-OAuthConnectivity -Service EWS -TargetUri https://mail.domain.nl/ews/ -Mailbox "John Doe"
    Creating a new session for implicit remoting of "Test-OAuthConnectivity" command...

    Task ResultType
    ---- ----------
    Checking EWS API Call Under Oauth Success

    Autodiscover check:
    [PS] C:Windowssystem32>Get-ClientAccessServer | FL -Property AutodiscoverServiceInternalUri

    AutoDiscoverServiceInternalUri : https://autodiscover.domain.nl/autodiscover/autodiscover.xml

    Storage check:
    PS C:UsersAdministrator.DOMAIN> Test-CsExStorageConnectivity -SipUri
    jdoe@domain.nl -Binding NetTCP -DeleteItem -HostNameStorageService
    fepool.ad.domain.nl -Verbose
    ......
    VERBOSE: Items choice type: DeleteItemResponseMessage.
    VERBOSE: Response message, class: Success, code: NoError.
    VERBOSE: Is command successful: True.
    Test passed.

    UserServicesPolicy check:
    PS C:UsersAdministrator.DOMAIN> Get-CsUserServicesPolicy

    Identity : Global
    UcsAllowed : False

    Identity : Tag:UCSEnabled
    UcsAllowed : True

    Identity : Tag:UCSDisabled
    UcsAllowed : False

    PS C:UsersAdministrator.DOMAIN> Get-CsUser -Identity "John Doe"

    Identity : CN=John Doe,OU=Users,OU=company,DC=ad,DC=domain,DC=nl
    ClientPolicy :
    ExchangeArchivingPolicy : Uninitialized
    UserServicesPolicy : UCSEnabled
    HostingProvider : SRV:
    RegistrarPool : FEPOOL.ad.domain.nl
    Enabled : True
    SipAddress : sip:jdoe@domain.nl
    LineURI : +31889991234;ext=1234
    EnterpriseVoiceEnabled : True
    ExUmEnabled : True
    HomeServer : CN=Lc Services,CN=Microsoft,CN=1:4,CN=Pools,CN=RTC Service,CN=Services,CN=Configuration,DC=ad,DC=domain,DC=nl
    DisplayName : John Doe
    SamAccountName : jdoe

  • Anonymous
    June 27, 2014
    Partner Application:
    PS C:UsersAdministrator.DOMAIN> Get-CsPartnerApplication

    Identity : Exchange
    AuthToken : Value=https://autodiscover.domain.nl/autodiscover/metadata/json/1
    Name : Exchange
    ApplicationIdentifier : 00000002-0000-0ff1-ce00-000000000000
    Realm : domain.nl
    ApplicationTrustLevel : Full
    AcceptSecurityIdentifierInformation : False
    Enabled : True

    Check CsClientPolicy:
    ...
    EnableExchangeContactSync : True
    ...

    And when I check if user can be migrated:

    PS C:UsersAdministrator.DOMAIN> Debug-CsUnifiedContactStore -Identity jdoe@domain.nl | FL
    UcsMigrationAttemptCount : 1
    LastUcsMigrationAttempt : 7/3/2014 12:46:00 PM
    SipUri : jdoe@domain.nl
    UcsMode : Ready To Migrate

    Test UCS:
    PS C:UsersAdministrator.DOMAIN> Test-CsUnifiedContactStore -UserSipAddress 'sip:jdoe@domain.nl' -TargetFqdn 'fepool.ad.domain.nl'

    Target Fqdn : fepool.ad.domain.nl
    Result : Failure
    Latency : 00:00:01.9612480
    Error Message : User has not been migrated. Verify that the user has a mailbox in Exchange and that the user has been migrated.
    Diagnosis :

    User has an Exchange Mailbox and has logged in to the mailbox. The date/timestamp from the UCSMigrationAttempt is a date from before I even installed the servers. Date and time on Front End, Exchange and Client are all the same.

    When I use CSClsLogger I get no messages at all with only the LyssAndUcs Scenario so there doesn't seem to be an attempt to migrate the contacts.

    Is there a way to force a migration attempt so I can get more info about what goes wrong?

    In Lync client it says "Exchange connection down" and Contact List Provider is Lync. But I can't figure out what goes wrong since almost all the test/debug commands give positive results.