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. RegardsAnonymous
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 removedAnonymous
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 : jdoeAnonymous
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.