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 "FEPool.UcMadScientist.com" -Filename "Export.zip"
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.
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.
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.
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
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.