Skype for Business – Migrate Lync 2013 Persistent Chat to SfB

So I’ve been looking for information on migration for Persistent Chat from Lync Server 2013 to Skype for Business Server 2015 so coming up short.

If your inplace upgrading your existing Lync 2013 Persistent Chat servers or collocated Persistent Chat role on a Standard Edition Lync 2013 Front End Server to SfB then the in place upgrade process will do all the work for you which is great 🙂 one less thing to remember and all that 🙂

However if your doing a side by side migration from Lync Server 2013 to Skype for Business and you already use persistent chat, then you need to migrate the existing content.

I’ve checked the usual places for any details or notes and it seems limited for Lync 2013 P Chat migration to SfB so i thought id share what i did.

In summary

You have to export the Lync 2013 Persistent Chat configuration including the categories and rooms, import the configuration into the new Skype for Business Persistent chat servers and remove the Lync 2013 old configuration after. I did find users have to refollow rooms as well.

Ok so lets go!

Server Summary for Scenario

Apologies with the very close matching FQDNs its the cost of in place upgrading I’m afraid. Ive added p chat to my 2013 server in my lab for this so we will move it to sfb.

  • Lync 2013 P Chat Server “” (SE Front End with P Chat Role)
  • Skype P Chat Server “” (SE Front End with P Chat role)

Grab this info first to save time

  • Lync 2013 P Chat server / pool name
  • SfB P Chat Server / pool name
  • Lync 2013 P Chat database server FQDN and instance name
  • SfB P Chat database server FQDN and instance name


1. Deploy your new and shinny Skype for Business Persistent Chat servers or collocated role on a SE Front End Server.

(Remember to apply the latest CU and if adding the role to an FE remember to run the CU installer after.)


2. Get a test client who’s following some rooms and you can see existing content in the rooms hosted on 2013.




3. Check Current Config and setup

Open SfB control panel and check out the categories and rooms you have already. I have two categories and five rooms.


You can also do this in SfB Management Shell and get a lot more details and you can export to text file just in case for future references.







You can also export these to a text file for reference just in case. why not it wont hurt 🙂

get-cspersistentchatcategorys | out-file c:\temp\pchatcats.txt

get-cspersistentchatrooms |out-file c:\temp\pchatrooms.txt


3. Export Lync 2013 Persistent Chat Configuration

Here you will need the database server and instance name where the p chat database is stored.

Below is a collocated p chat database on a 2013 Standard Edition server.

Export-CsPersistentChatData -DBInstance "\rtc" -FileName "c:\temp\"



Now we have an export and backup of our current Lync 2013 P Chat data and config. Guess what we need to do next. Yep import that bad boy into SfB p chat database.

4. Import P Chat export to Skype for Business

Here you will need the new Skype for Business Persistent chat database location. Below is SfB Standard Edition Front End Server. Please note my SfB SE Front End FQDN is called lyncse01. Please be careful not to get this confused.

Import-CsPersistentChatData -DBInstance "\rtc" -FileName "c:\temp\"


5. Check the import

We will use the tools we used before to check the config. We will now see that we have a duplicate set of categories and rooms. One set on Lync 2013 and one set on Skype for Business.







6. Remove Legacy Categories and Chat Rooms

First use the get command and BE CAREFUL to make sure you chose the correct server. THIS must be the Lync 2013 P Chat Server.

Get-CsPersistentChatRoom -PersistentChatPoolFqdn ""


(Get-CsPersistentChatRoom -PersistentChatPoolFqdn "").count

The count should return only the 2013 rooms so in my case 5.

Lets remove, this command will remove all in one go any rooms on the 2013 server, you do have to press y to accept deleting an enabled room.

Get-CsPersistentChatRoom -PersistentChatPoolFqdn "" |Remove-CsPersistentChatRoom


Let check control panel, yep the rooms from 2013 have been deleted. You must delete the rooms first before the categories.


Lets do the same process, check the categories and then delete.

Get-CsPersistentChatCategory -PersistentChatPoolFqdn ""


Get-CsPersistentChatCategory -PersistentChatPoolFqdn ""| remove-cspersistentchatcategory


back to control panel and they are gone 🙂


7. Lets check the persistent chat client


After deleting the previously followed 2013 rooms these were removed but if i search i can see the rooms and re add them so not the end of the world.

After i re- followed the rooms


I opened a room and there’s the content !


All done and now you can decommission that Lync 2013 P Chat servers.


8 thoughts on “Skype for Business – Migrate Lync 2013 Persistent Chat to SfB

  1. Some comments after a Migration from 1 Lync SE to 1 Sfb SE:

    I’m not sure if it’s a typo in the export/import cmdlets, but usually you need to deploy a sep. SQL server for the p-Chat database. So I suggest to run the export/import cmdlet’s against the sqlserver/sfbinstance (DBinstance parameter) – or have you found a way to deploy pchat on the local SQL instance?

    also make sure, that the managers are in the scope of the “Allowed members” Distribution group. (p-chat category). After the import into the new database i got the following error message in the html log:

    Warning: Error with Id=A4377A92-4BED-45C9-9C2C-75E2A8F58BAF; Name=”IT NEWS”; Message=”These principals are not in scope: “; Reproduce with:
    exec Imp_ChatRoom @xml=’News zu Lync’, @insertOnly=0, @updated=0.

    Not sure how my predecessor could add his account without being an actual member of the DL 😉

    best regards

    1. Hey Chris thanks for the comments. You can collocate p chat role on a standard edition front end servers only using the local sql express. If using enterprise edition front end server you have to use separate standalone SQL server I’m afraid. When collocating on standard edition front end you need to think about the requirements, usages and if collocation is the best option for performance and space etc. Hope this helps.

      1. ah okay… I always thought pChat requires a SQL server… But I never tried it by my own… Luckily, our customers always need CDR, so the SQL server is there anyway 😉 thanks and have a nice day

  2. Hi Martin, thanks for this useful post. Just a small update: Export-csPersistentChatData does not export pChat rooms marked as Disabled. The same applies to Get-csPersistentChatRoom. A workaround I used was to enable all disabled pChat rooms then export the data. It is far from ideal but I had only one disabled room.

  3. Thanks Martin for this helpful article. Just few remarks after migration.

    Sad that I didn’t notice Marcins comment about disabled rooms before. Was fighting with mysterious rooms which didn’t appear in .count and didn’t migrate but prevented to delete old categories 🙂

    Rooms in Skype client started working fine right after import (except files were still uploaded to old fileshare) but web page with My Rooms didn’t show any room at all. Wasn’t able to manage rooms in new pool until didn’t delete old pool, published topology and spent some time fingers crossed.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.