Lync Server 2010: Archiving Essentials

The need to properly and securely archive content has risen greatly over the last few years with compliance issues. Microsoft Lync Server 2010 can help.

John Policelli

Regulatory compliance is on the rise. Any organization in any industry—not just in regulated industries like health care and finance—needs to be able to produce documents and archived content if any compliance issues come to light.

Virtually all regulatory compliance structures require that you retain specific types of communications and documents for specific periods of time. Microsoft Lync Server 2010 lets you archive instant messaging (IM) content and conferencing content., or one or the other. You can deploy and configure Lync Server 2010 depending on your current and future archiving needs.

Lync Server 2010 can archive peer-to-peer (P2P)or multiparty IMs. It can also archive conference content such as handouts, event-related documents and records of participants joining and leaving meetings. Lync Server 2010 won’t archive P2P file transfers, audio/video and application sharing (both P2P IMs and conferences), or conferencing annotations and polls.

When planning for Lync Server 2010 Archiving, you need to first define the scope of archiving requirements for your organization. Determine the policies you’ll need to properly manage archiving, whether you need to archive both internal and external communications, and which workloads you plan to archive. You’ll also need to plan for other situations, such as deciding whether to block IMs or conferencing in the event of an archiving system failure.

Another key consideration before planning and deploying Lync Server 2010 Archiving is determining how you’ll manage archived data. Keep in mind that the Archiving Database isn’t designed for long-term storage. It also doesn’t have a solution for searching archived data. You’ll also need to determine retention timelines and how you’ll purge archived data that’s no longer needed.

Setting up the Archiving System

The Lync Server 2010 Archiving Server includes the following components:

  • Archiving Server: The Archiving Server is a Lync Server 2010 server role responsible for reading messages (from the Archiving Agents) and writing them to the Archiving Back-End Database.
  • Archiving Back-End Database: This is a SQL Server database used to store archived content.
  • Archiving Agents: Archiving Agents capture messages and send them to the Archiving Server. These agents are automatically deployed on each front-end server. However, they won’t capture messages unless an Archiving Server is deployed and associated with a front-end pool or Standard Edition server, and archiving is enabled.

You’ll also need to determine where to locate the Archiving Server and Archiving Database. You can deploy these on the same server or separate servers. You can also co-locate the Archiving Server and the Archiving Database with any or all of the following:

  • Monitoring Server
  • Monitoring Database
  • Back-End Database of an Enterprise Edition Front-End pool
  • File share for Lync Server 2010

It’s important to understand the implications of co-locating the Archiving Database with other databases, although there’s considerable flexibility. If you co-locate the Archiving Database with the Monitoring or Back-End Databases (or both), you can use a single SQL instance for any or all of the databases.

You can also use separate SQL instances for each database. If you do use separate instances, there are some limitations. First, each SQL instance can contain only a single Back-End Database, a single Monitoring Database, and a single Archiving Database. Second, the database server can’t support more than one Front-End pool, one Archiving Server and one Monitoring Server.

Archiving Policies

Lync Server 2010 lets you control the scope of archiving through archiving policies. These policies can enable or disable archiving, and define whether to archive internal and external communications. You can apply them at the global level, site level and user level. If you apply archiving policies at the site level or user level, the user-level policies will override the site-level policies. For more information on the different policy levels in Lync Server 2010, refer to Microsoft Lync Server 2010: Provisioning Mechanisms.

Once you’ve completed your Lync Server 2010 Archiving planning, you’re ready to deploy. This part of the process includes preparing the Lync Archiving Server and Lync Back-End Database, adding archiving to your topology and installing archiving.

When preparing the Lync Archiving Server, you’ll need to install the requisite software. For the Archiving Server, this includes Message Queuing. You’ll have to install Message Queuing—with Active Directory Domain Services Integration enabled—on the Archiving Server and on each Front-End Server and Standard Edition Server with the users for whom you want messages archived.

For the Archiving Back-End Database, you must install SQL Server on the server that will store the Archiving Back-End Database. Last, you’ll need to create provision file storage, which the Lync Archiving file share will use.

Once you’ve prepared the Lync Archiving Server and Back-End Database, add archiving to your topology and publish the updated topology. Use the Topology Builder to do this. When adding archiving to your topology, you must define the following:

  • Fully Qualified Domain Name (FQDN) for the Archiving Server
  • SQL Store for the Archiving Back-End Database, including FQDN of SQL Server and SQL Instance (Default Instance or Named Instance)
  • File Store, including the FQDN of file server and file share name
  • Front-End pools to associate with the Archiving Server you’re adding

Once you’ve added archiving to your topology, use Topology Builder to publish the updated topology.

Installing Archiving

Now that you’ve added archiving to your topology and published the updated topology, you can go ahead and install archiving. Run the Lync Server Deployment Wizard on the Archiving Server to install Lync Server 2010. The Deployment Wizard will use the updated topology you just published to install the appropriate files and set up the Archiving Server.

After you’ve deployed Lync Archiving, you’ll need to go through the configuration steps. Configuring archiving includes setting the archiving policy and archiving configuration.

Again, archiving policies are where you define whether to archive internal communications, external communications or both. You can set these policies using the Set-CsArchivingPolicyLync Server Management Shell cmdlet. You can apply Lync Archiving policies at the global level, site level and user level.

For this example, let’s modify the global policy. However, the same applies to site-level and user-level policies. Simply change the value for -Identity to be that of the policy you want to modify. Here are the steps to set the archiving policy so that internal communications are archived:

  • Log on to a computer with the Lync Server Management Shell installed as a user with the RTCUniversalServerAdmins role assigned.

  • Type the following command and then hit Enter:

    Set-CsArchivingPolicy -Identity Global -ArchiveInternal $True -ArchiveExternal $False

  • To verify the settings are applied, type the following command and then hit Enter:

    Get-CsArchivingPolicy Global

This revised archiving policy is shown in Figure 1.

Figure 1 The revised archiving policy.

Archiving Configuration

The next step in configuring archiving is to set the archiving configuration. This is where you define the archiving settings such as:

  • Which items are archived (IM, conferencing, or IM and conferencing)
  • How “cross-pool” messages should be archived
  • Whether to suspend the IM service if archiving isn’t available
  • Whether purging is enabled
  • The number of days to keep archived messages in the database
  • The cache-purging interval
  • Whether to only purge exported items from the database
  • The time of day to purge expired items

In our example, we’ll set the archiving configuration according to these parameters:

EnableArchiving: ImOnly: This means only IM sessions will be archived to the database.

EnablePurging: True: Archived IMs will periodically be removed from the database, provided that these IMs are older than the value specified in the KeepArchivingDataForDays property or have been exported and marked for deletion.

PurgeExportedArchivesOnly: False: If this is set to true, the system would only purge IMs that have been exported. In this case, all IMs will be purged when they exceed the KeepArchivingDataForDays value, regardless of whether they’ve been exported.

BlockOnArchiveFailure: False: IM will be allowed, even if the archiving system is unavailable.

KeepArchivingDataForDays: 365: This will keep IMs archived for one year.

PurgeHourOfDay: 2: Expired records will be deleted from the archiving database at 2 a.m.

To set the archiving configuration to match these parameters, follow these steps:

1. Log on to a computer with the Lync Server Management Shell as a user with the RTCUniversalServerAdmins role assigned.

2. Type the following command and then hit Enter:

Set-CsArchivingConfiguration -Identity Global -EnableArchivingImOnly -EnablePurging $True -PurgeExportedArchivesOnly $False -BlockOnArchiveFailure $False -KeepArchivingDataForDays 365 -PurgeHourOfDay 2

3. Verify the settings are applied by typing the following command and then hit Enter:

Get-CsArchivingPolicy Global

The revised archiving configuration is shown in Figure 2.

Figure 2 The revised archiving configuration.

Working with Archived Content

Lync Server 2010 doesn’t have a way to search archived content. There is, however, a built-in way to view archived content. The archived content viewer uses Export-CsArchivingData cmdlet to export records that have been stored in the archiving database. When using the Export-CsArchivingData cmdlet to export archived content, it creates files (in the folder that you specify) with an .eml extension. You can then view these files using an e-mail client. You could also rename them with an .mht extension and use Internet Explorer.

Before getting into examples of exporting archived messages, there are mandatory and optional settings included with the Export-CsArchivingData cmdlet, which are described in Figure 3.

Figure 3 Mandatory and optional settings that are included with the Export-CsArchivingData cmdlet.

Organization Size               Authentication Collaboration Typical Cloud Use
Small organization, up to 25 users Workgroup Individual Applications like email
Medium organization up to 250 users Domain Federation Platform, database, ERP
Enterprise class organization Multiple domains Dedicated Load and location leveling

Exporting Archived IMs

To demonstrate the steps for exporting IM content, run the Lync Management Shell commands using an account that’s assigned the RTCUniversalServerAdmins role. Here are two example scenarios:

1. To Export All IMs

In this example, we’ll export all IM conversations that occurred between two specific dates and for all archiving-enabled users. To do so, run the following command:

Export-CSArchivingData -DBInstance lynclab2ma.lynclab2.local\LyncArchiving -StartDate 3/1/2011 -EndDate 3/12/2011 -OutputFolder "C:\ArchivingExports"

In this command, the DBInstance parameter—lynclab2ma.lynclab2.local\LyncArchiving—is made up of the FQDN of the SQL Server hosting the archiving database and the named instance of the archiving database. This command uses the StartDate and EndDate settings to filter exported records based on date. It also exports the records to a folder called ArchivingExports on the C drive.

As you can see in Figure 4, the records were successfully exported.

Figure 3 The selected IMs were successfully exported.

2. To Export All IMs for One User

In this example, we’ll export all IM conversations that occurred between two specific dates for a specific user. Run the following command to do so:

Export-CSArchivingData -DBInstance lynclab2ma.lynclab2.local\LyncArchiving -StartDate 3/1/2011 -EndDate 3/12/2011 -OutputFolder "C:\ArchivingExports" -UserURI "user3@lynclab2.local"

In this command, we used the UserURI setting to ensure only records for the user3@lynclab2.local account were exported.

Viewing IMs

Once you’ve exported IM conversations, you can view them through the exported files. In the previous commands, we output the exports to the C:\ArchivingExports folder. Using the Export-CSArchivingData cmdlet also creates a folder structure for the export files, as shown in Figure 5.

Figure 5 The folder structure created for exported IM conversations.

Within this folder structure, you’ll find the exported content as files with an .eml extension, as shown in Figure 6.

Figure 6 Exported files are listed with an .eml extension.

You can open these files with an e-mail client. You can also rename the files with an .mht extension and view them with Internet Explorer (see Figure 7).

Figure 7 You can also use Internet Explorer to view IM conversations.

So establishing, deploying and configuring Lync Server 2010 Archiving is as much about determining process and policy as it is about technological decisions. Work with your business unit managers—and perhaps also corporate legal counsel—and you’ll be able to develop the right structure to suit your organization’s needs.

John Policelli

John Policelli(MVP for Directory Services) is a solutions-focused IT consultant with Avanade Canada. He has designed and implemented dozens of complex directory service, collaboration, Web, networking and enterprise security solutions, and has spent years focused on identity and access management. He’s also an author, technical reviewer and SME for more than 75 training, certification and technical white paper projects.