Configuring your Skype for Business Deployment with Exchange 2013 – Part 1

Hello Readers

In this post I will look at how to configure your Skype for Business Pool with Microsoft Exchange 2013, this is aimed at readers who haven’t configured Lync 2013 with Exchange 2013 in past deployments. We will look at the following;

  • Configure Partner Applications
  • Configure Skype for Business Server to use Exchange archiving
  • Configure Skype for Business Server to use the unified contact store
  • Configure Exchange Server Unified Messaging for Skype for Business Server voicemail
  • Integrate Skype for Business Server and Outlook Web App.

You can find Microsoft Technet References to all of the above here https://technet.microsoft.com/en-us/library/jj688098.aspx

If your more interesting in moving to a Hybrid scenario, take a look at https://ahandyblog.wordpress.com/2015/12/02/configure-lyncsfb-with-office-365-for-server-to-server-authentication/

In Part 1 we will cover

  • Configure Partner Applications
  • Configure Skype for Business Server to use Exchange archiving

In Part 2 we will cover

  • Configure Skype for Business Server to use the unified contact store

In Part 3 we will cover

  • Configure Exchange Server Unified Messaging for Skype for Business Server voicemail
  • Integrate Skype for Business Server and Outlook Web App

A couple of prerequisites for this post

Your Exchange Server 2013 is up and operational

You have administration rights  to both Exchange and Skype for Business Servers

Configure Partner Applications

First of all we need to be connected to your Exchange Server in my lab I have the following machine names

ex01.lyncme.local – Exchange Server 2013

fe01.lyncme.local – Skype for Business 2015 Standard Edition Server

Now that you are connected to your Exchange Server you will need to Launch the Exchange Management Shell in Administrator Mode. Once you have Management Shell open you need will need change the directory to C:\Program Files\Microsoft Exchange Server\V15\Scripts. The reason for this is because we need one of the Exchange Powershell scripts stored in this location and as you can see below I will be using Configure-EnterprisePartnerApplication.ps1

We now  must provide the URL for the Skype for Business Server authentication metadata document

Enter .\Configure-EnterprisePartnerApplication.ps1 –AuthMetadataUrl ‘https://<your front end pool now for Skype for Business>/metadata/json/1’ –ApplicationType “Lync”

Capture1

Once complete you should received an output like below

Capture2

We now need to reset IIS with a simple command

iisreset <your Exchange Server FQDN> as shown below

Capture3

We now need to create a Partner Application for Exchange on your Skype for Business Front End.

Launch the Skype for Business Management Shell

Enter .New-CsPartnerApplication –Identity Exchange –ApplicationTrustLevel Full –MetadataUrl ‘https://<your autodiscover url/metadata/json/1”

Capture4

You should receive a similar output

Capture5

You can test this configure by running Test-CsExStorageConnectivity –SipUri “sip:firstname.surname@domain.com” and you should get a successfully output

Capture6

But you receive this error your are not apart of the RTC Local Server Administrators Group on the Skype for Business Front End or be added to the RTCUniversalServerAdmins Active Directory Group.

blog1

 

This completes Configure Partner Applications.

Configure Skype for Business Server to use Exchange archiving

So in this part we will look at the methods used to enable Exchange Archiving, we do have a couple of methods of enabling Archiving so I will demonstrate this below

First Method

  1. Enable Exchange archiving by modifying your Skype for Business Server archiving configuration settings. This step is required for all deployments.
  2. Enable archiving for internal and/or external communications for your users. This step is required for all deployments

Second Method

  1. Configure the ExchangeArchivingPolicy property for each user. This step is only required in Skype for Business Server and Exchange are located in different forests.
  2. Enable archiving for internal and/or external communications for your users. This step is required for all deployments

First Method

We can utilize the Skype for Business Management Shell to enable/disable archiving. The command we need is;

  • Set-CsArchivingConfiguration

and as always there is a couple of cmdlets we need to be aware

  • Identity
  • -EnableArchiving
  • -EnableExchangeArchiving

For Identity you can specific “Global” or another identity you would like to apply this command against like a site or user

For EnableArchiving you have 3 options which have been defined before

  • None. Archiving is disabled. This is the default value. If EnableArchiving is set to None then nothing will be archived in either your Skype for Business Server archiving database or in Exchange 2013.
  • ImOnly. Only instant message transcripts are archived. If Exchange archiving is enabled these transcripts will be archived in Exchange 2013. If Exchange archiving is disabled then these transcripts will be archived to Skype for Business Server.
  • ImAndWebConf. Both instant message transcripts and Web conferencing transcripts are archived. If Exchange archiving is enabled these transcripts will be archived in Exchange 2013. If Exchange archiving is disabled then these transcripts will be archived to Skype for Business Server.

For EnableExchangeArchiving you have two options $True to enable or $False to disable Exchange Archiving

To enable Exchange archiving

Set-CsArchivingConfiguration -Identity "global" -EnableArchiving ImOnly -EnableExchangeArchiving $True

To disable Exchange archiving

Set-CsArchivingConfiguration -Identity "global" -EnableArchiving ImOnly -EnableExchangeArchiving $False

 

Capture1

For the next part of this method we need to specify if we want to archiving Internal, External or Both communications.

We can utilize the Skype for Business Management Shell to enable/disable archiving. The command we need is;

  • Set-CsArchivingPolicy

and as always there is a couple of cmdlets we need to be aware

  • -Identity
  • -ArchiveInternal
  • -ArchiveExternal

For Identity you can specific “Global” or another identity you would like to apply this command against like a site or userFor EnableArchiving you have 3 options which have been defined before

For ArchiveInternal. When set to $True indicates that internal communication sessions involving only users who have Active Directory accounts in your organization) will be archived.  $False will disable archiving for Internal communications

For ArchiveExternal. When set to $True indicates that internal communication sessions (sessions involving at least one user who does not have an Active Directory account in your organization) will be archived.   $False will disable archiving for external communications

To enable Exchange Archiving

Set-CsArchivingPolicy -Identity "global" -ArchiveInternal $True -ArchiveExternal $True

Capture2

To disable Exchange Archiving

Set-CsArchivingPolicy -Identity "global" -ArchiveInternal $True -ArchiveExternal $True

Alternatively, you can use the New-CsArchivingPolicy to create a new policy at either the site scope or the per-user scope. For example, this command creates a new per-user archiving policy named RedmondArchivingPolicy:

New-CsArchivingPolicy -Identity "LyncMeArchivingPolicy" -ArchiveInternal $True -ArchiveExternal $True

If you create a per-user policy you will then need to assign that policy to the appropriate users. For example:

Grant-CsArchivingPolicy -Identity "Andrew Price" -PolicyName  "LyncMeArchivingPolicy"

Second Method

Please note: This scenario is primarily used for Skype for Business 2015 and Exchange 2013 Servers are located in different forests. In order to enable Archiving we need to perform some powershell commands in Skype for Business Management Shell, in order to enable a single user for Archiving to Exchange we will run the following command;

Set-CsUser -Identity “Andrew Price” -ExchangeArchivingPolicy ArchivingToExchange

Capture3

The key part here is the ArchivingToExchange, as there is another 3 commands we can use here and these have been listed below

  1. Uninitialized. Indicates that archiving will be based on the In-Place Hold settings configured for the user’s Exchange mailbox; if In-Place Hold has not been enabled on the user’s mailbox then the user will have his or her messaging and Web conferencing transcripts archived in Skype for Business Server.
  2. UseLyncArchivingPolicy. Indicates that the user’s instant messaging and Web conferencing transcripts should be archived in Skype for Business Server rather than in Exchange.
  3. NoArchiving. Indicates that the user’s instant messaging and Web conferencing transcripts should not be archived at all. Note that this setting overrides any Skype for Business Server archiving policies assigned to the user.
  4. ArchivingToExchange. Indicates that the user’s instant messaging and Web conferencing transcripts should be archived to Exchange regardless of the In-Place Hold settings that have (or have not) been assigned to the user’s mailbox.

 

If you want to set the same archiving policy for a group of users (for example, all the users homed on a specified Registrar pool) you can use a command similar to this:

Get-CsUser -Filter {RegistrarPool -eq "atl-cs-001.litwareinc.com"} | Set-CsUser -ExchangeArchivingPolicy ArchivingToExchange

Again for the next part of this method we need to specify if we want to archiving Internal, External or Both communications.

We can utilize the Skype for Business Management Shell to enable/disable archiving. The command we need is;

  • Set-CsArchivingPolicy

and as always there is a couple of cmdlets we need to be aware

  • -Identity
  • -ArchiveInternal
  • -ArchiveExternal

For Identity you can specific “Global” or another identity you would like to apply this command against like a site or userFor EnableArchiving you have 3 options which have been defined before

For ArchiveInternal. When set to $True indicates that internal communication sessions involving only users who have Active Directory accounts in your organization) will be archived.  $False will disable archiving for Internal communications

For ArchiveExternal. When set to $True indicates that internal communication sessions (sessions involving at least one user who does not have an Active Directory account in your organization) will be archived.   $False will disable archiving for external communications

To enable Exchange Archiving

Set-CsArchivingPolicy -Identity "global" -ArchiveInternal $True -ArchiveExternal $True

 To disable Exchange Archiving

Set-CsArchivingPolicy -Identity "global" -ArchiveInternal $True -ArchiveExternal $True

Alternatively, you can use the New-CsArchivingPolicy to create a new policy at either the site scope or the per-user scope. For example, this command creates a new per-user archiving policy named RedmondArchivingPolicy:

New-CsArchivingPolicy -Identity "LyncMeArchivingPolicy" -ArchiveInternal $True -ArchiveExternal $True

 

If you create a per-user policy you will then need to assign that policy to the appropriate users. For example:

Grant-CsArchivingPolicy -Identity "Andrew Price" -PolicyName  "LyncMeArchivingPolicy"

This completes Configure Skype for Business Server to use Exchange archiving and Part 1 of Configuring your Skype for Business Deployment for Exchange

Regards

Andrew J. Price

4 thoughts on “Configuring your Skype for Business Deployment with Exchange 2013 – Part 1”

  1. Excellent Document and explanation. Look forward to Part 2 and others in the future.

    I am running EX 2016 with SFB 2015. Everything is working fine except for one single error “SFB and Exchange aren’t making connection right now”. As a result there is no conversation history within outlook client but the user status are Available. This error has been there since day one. Not sure how to resolve the issue. I never had this issue with Lync 2013. Any input what to look for would be appreciated.

    Thanks

    RL

Leave a Reply

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