Report on External Federation in Skype for Business


Skype for Business is a great communications platform. And as with any form of communication, both inside and outside the company there are always desires to audit who users are communicating with.

Maybe you’re looking to see if users are talking to your direct competitors, or maybe you need to disable open federation and don’t want to break any of your existing federation relationships?

There are a few ways you could tackle this.

You could write your own custom reports for the QoE database, Every conversations session information is stored in there, but is complicated to query and slow to write data for

You could get every user to send you their contact lists, but that requires a fair amount of bothering users and data collation.

So I wrote a simple script to do it for you!

This script iterates through an XML file generated by the Lync 2013 Export-CsUserData cmdlet and produces an HMTL report of external federated domains


This script will pull data from an existing DocItemSet.xml from a Lync/Skype4B Export-CsUserData export.
To use it you will need to export your existing user data by running the following cmdlet from a server in your Lync/Skype environment.

Export-CsUserData -PoolFQDN "" -Filename ""

Once you have, open the ZIP file and place the DocItemSet.xml in the same folder as this script.

Run the script and it will generate a HTML report with all the domains that users have saved in their contact lists and how frequently they have been found.

The script will then open the HTML report


Grab it from the TechNet Gallery or head down below and fork the code for yourself.

Optional Command Line Parameters


Stops the script from checking online for an update and prompting the user to download. Ideal for scheduled tasks


Stops the script from generating a HTML report, instead, results will be placed in the Pipeline to be picked up by another script or displayed on the screen


Instead of just listing the domains in the contact list, this will list every unique contact stored in every user’s Lync/Skype contact list.
Be careful! The output of this setting will contain personal data and should be treated as such.

Known Issues

Presently the script will also report the local sip domains as well as remote, this is typically the largest count and can be ignored.

Depending on how you export your CsUserData you may get a bunch of weird-looking GUID contacts. These are from your SIP application accounts and can be safely ignored.

There is presently no auto export function, you will need to export the CsUserData yourself.

Fork me!

This script is free, open-source and licensed under the MIT Licence. Feel free to view the source, fork it, raise issues and submit your improvements via pull requests. You can me find on Github:

As always, I hope this script has been helpful.

3 thoughts on “Report on External Federation in Skype for Business

  1. Max

    Hi James

    Just wanted to say the Script is excellent and really useful

    I have one questions

    The Export is working, but the File Size for the DocItemSet.xml we have is 936MB

    Is there a limit on the File Size?

    I have been able to run the Script for myself and know that it works

    But wanted to understand if there is a size limit, then will have to look at other data exports

    Many thanks

    1. Avatar photoJames "UcMadScientist" Arber Post author

      Wow… Thats huge! how many users do you have?
      XML isn’t exactly an efficient way of storing that data.

      I haven’t set any limits in the tool itself, if anything your going to run into limits with the XML parser and PowerShell itself. I’d be VERY interested to see your RAM usage whilst iterating through such a large report as I never really coded it with RAM efficiency in mind. I’m assuming this would jump to 2GB very easily.


Leave a Reply

Your email address will not be published. Required fields are marked *

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