About Me

My photo
TsooRad is a blog for John Weber. John was a Skype for Business MVP (2015-2018) - before that, a Lync Server MVP (2010-2014). My day job is titled "Technical Lead, MS UC" - I work with an awesome group of people at CDW, LLC. I focus on collaboration and infrastructure. This means Exchange of all flavors, Skype, LCS/OCS/Lync, Windows, business process, and learning new stuff. I have a variety of interests - some of which may rear their ugly head in this forum. I have a variety of certifications dating back to Novell CNE and working up through the Microsoft MCP stack to MCITP multiple times. FWIW, I am on my third career - ex-USMC, retired US Army. I have a fancy MBA. One of these days, I intend to start teaching. The opinions expressed on this blog are mine and mine alone.


Lync 2013 Archiving

Some organizations have a need for Archiving – be it for legal compliance or other reason.  But once you get the environment setup for archiving, you need to be able to view the contents.  Lync 2013 makes the first part extremely easy.  Lync 2010 changed how to see the content, and Lync 2013 continues with that same paradigm.  Additionally, there is an Office Communications Server 2007 R2 tool that will reveal the some of the hidden secrets in the archive database.

What we’ll do here is layout, at a high level, how to get archiving deployed with Lync 2013, and then review the various methods of seeing the Archive contents.

What is Needed

For this exercise, we’ll use Topology Builder, either an SE or and EE pool, a SQL server, and either PowerShell or the Lync Control Panel.  The viewing of archived material will also require a few other utilities.  You will also need to do a bit of planning on database sizing.   You can use this handy chart to swag the needs for your environment.  In general, you can predict archive database size with the following formula: 

days to keep data * KB * users. 

Here is an example (note that I have this in excel and it includes monitoring database size predictions as well.


In general, the planning instructions found here are pretty good; and the deployment instructions are here. If you follow those you should have no problem setting this up.

Setup and Installing Lync 2013 Archiving Role

If you have your SQL in place before you start, you can set this all up at the same time as you deploy your first Front End pool server.Assuming here that you already have either an SE or an EE pool deployed, you can simply go in and hit the Archive checkbox for the pool.  If you already have an EE pool, then you have the option of placing the Archiving database on that backend SQL. If not, you will have to have a SQL server in mind, and you will need to know the instance on that SQL server. Remember that an SE pool does not require the SQL backend, but the Archive role on an SE pool does. Using Topology Builder:


Fill in the SQL information –

If you have multiple pools, they can all point to the same Archive target.  Here is my SE pool, pointing at the same SQL for Archiving.


Once you have that done, remember to publish the new topology.  I always like to define my database locations ahead of time.  Then, when you publish the topology, choose the store server, and click on it…then hit the “Advanced…” button and specify your location.


OK, so you published the topology, the databases were deployed as expected – now what?  First you need to actually install the Archive role onto each SE pool or if you have an EE pool, each EE pool member.  This is done by opening the Lync Deployment Wizard on each affected server and choosing the “Install or Update Lync Server System.”


…now select step one…

…if you already have a server installed, you want step two…


Note that in my environment, the server is already deployed, but we need to run this again to put the Archiving role into place.

Configure Archiving

Once that is done, we need to configure Archiving. Out of the box, the system defaults to doing nothing.  You will have to enable the archiving process as well as configure archiving for “what,” for “how long,” and for what to do if the archiving service stops.  For that, we need to use either PowerShell or the Lync Control Panel.  For the PowerShell-challenged (like me) the Lync Control Panel is an easier option. 

Here we are in the Lync Control Panel:


Note that the Archiving Policy is zero.  You can have site or user archive policy.  For a quick read on that, see this.  So we’ll ignore the site and user options, and just configure the default global. 


Hopefully you read the above reference, and you know the difference between internal and external :). Commit that change, and let’s do the next tab over – Archiving Configuration.  Here we have the option for site or pool.  Again, the reference above explains that and why.  For now, modify the global.  There are several important options here – I think that the possible need for a pool being separate from a site are fairly clear.  For instance, you could have a pool dedicated just for large conferences and you would want to handle that differently than the regular pool.  You will also want to pay attention to the behavior if archiving fails.  If there is a compliance issue that requires all IM and Conferencing to be archived, then you will want to enable this.  It prevents activity unless the archiving is functioning.


The other important piece is the Exchange 2013 archiving.  If this is enabled, then the archive store becomes the users’ mailbox.  If this is the case, you will need to ensure you understand this.  At any rate, commit our changes and let’s go look at some data.  Before you can look at the results of archiving, you will need to either generate some data, or let your users do it for you.  If you want to see the output difference, you will want to have both.

The PowerShell cmdlets you need to modify the global archiving policy and global archiving configuration are set-csarchivingpolicy and set-csarchivingconfiguration. For your more complicated setups, you will also want to investigate new-csarchivingpolicy and perhaps new-csarchivingconfiguration.

Viewing Archive Contents

The basic toolset used to view archive contents is PowerShell and Outlook.  Here is the PowerShell cmdlet that you will need to know:  Export-CsArchivingData.  As a note, you must use valid data ranges.  For instance, if you did not turn on archiving prior to 1/1/2013, why would you ask for data from start date10/1/2012 to end date 12/15/2012?  Here is an example of a successful archive export.


Here in the target output folder, it looks like this – with one folder per day.


Inside one of those folders you will see this – note the file name differentiates between a peer to peer (P2P) and a conference archive.  Also note that the conference archive item(s) appear to be larger than just the P2P archive items. 


Let’s take a look at the inside of one of these.  The file type is “eml” which Outlook 2010 and higher will open directly.  Outlook 2007 with an SP might also, but don’t take my word for it.  You can also rename the files to *.mht, and open them in a browser (well, they open in IE at any rate).  Here is one of the P2P files when the eml is opened in Outlook.


Here is a conference archive result when opened in Outlook.  Note that there is attachments here, the data collaboration, a PNG attachment (somebody put a picture into the conference), and a whiteboard.


Here is the Data Collaboration:


Here is the pretty picture that was included – you can tell serious work was going on here!


And here is the raw whiteboard output – seeing as how it was 18K it goes on for a longish bit, this is just a few of the first lines.


If, like me, your brain does not decode XML on the fly, you will want to obtain the handy-dandy Lync Server 2013 Whiteboard Archiving Viewer.  I strongly suggest that you read the documentation available – the usage is not just point and click.  To install this tool on a workstation, you will need access to the “Microsoft Visual C++ 2012 x64 Minimum Runtime – 11.050727” – you can install this onto your workstation from the Lync Server 2013 iso – \setup\amd64\vcredist_x64.exe is what you are looking for.  You will find the installed wbviewer at C:\Program Files\Microsoft Lync Server 2013\Web Conferencing.  I copied the exported “whiteboard [1].xml file out of the EML to my c:\temp folder before running this command:


and we get to see this business critical content:


OCS IM Archive Viewer 1.0

Another (totally unsupported) option to view IM archive content is the Office Communications Server 2007 R2 IM Archive Viewer.  You can download the OCS R2 Archive IM Viewer v.10 here. This tool is only good for looking at IM content – it will not show you conferencing archive content.  However, for a quick look and not needing to run PowerShell export commands, this may be a useful tool.  Remember that this is UNSUPPORTED.  After a very quick setup on my Lync 2013 Front End pool server, I was able to view IM archive content directly.



Installation and setup of Lync Server 2013 Archiving is very straightforward – but it does require a separate SQL server or instance.  After installation, you will need to configure the Archiving Policy and Archiving Configuration settings to match the business needs of your organization.  Policy and configuration may need to expand past the default global settings.  After you have some content, PowerShell and Outlook will be your primary tools to export and view archive content.  Viewing exported whiteboard archive content requires a separate utility.



Joseph Parlas said...

In your excel spreadsheet, should you not divide each time by 1024 versus 1000?
I believe your numbers are higher than they should be.

tsoorad said...

Yes, technically you are correct. In fact I have a newer version that does exactly that. I find, however, that the numbers are close enough.

Sfb 2019 July 2019 CU

Script to update sfb 2019 install to enable the new control panel contained in the SfB July 2019 CU. Add-WindowsFeature RSAT-ADDS, Web-Serve...