Configuring Skype/Lync hybrid

Today’s blog post is based on one of the most requested step-by-step guides in FastTrack Center. It was written by Daniel Seleri, a FastTrack Engineer based in Las Colinas, TX. Enjoy it!

Our objective today is to guide you through the steps of connecting your existing Skype for Business 2015, Lync 2013 or Lync 2010 with Skype for Business online. For detailed information regarding Skype hybrid deployments, please check Overview of Lync Server 2013 hybrid deployments.

Assumptions for the hybrid configuration

Before we move forward, there are some things you must ensure are ready:

  • You already have a tenant on Office 365
  • You have the Skype for Business Server 2015/Lync Server 2013 administrative tools installed
  • You have a fully functional Edge server pool
  • Your on-premises Active Directory are synchronized with the cloud
  • Your local Lync/Skype for Business is up and running
  • Your firewall is configured for Skype for Business online as described at Office 365 URLs and IP address ranges
  • Both Windows servers and Lync/Skype servers are all up to date

Also, you should validate you have the minimum required configuration using the Remote Connectivity Analyzer with the following options in SfB/Lync, according to what you have installed:

  • Skype/Lync Server Remote Connectivity Test
  • Skype/Lync Autodiscover Web Service Remote Connectivity Test

Configuring Skype for Business Online

  1. Download and install Skype for Business Online, Windows PowerShell Module on your computer

  2. Open the Windows PowerShell and type these two commands:

    Import-Module LyncOnlineConnector $cred = Get-Credential
  3. Type your Global Admin account from your tenant

  4. Now connect to Skype for Business Online

    $session = New-CsOnlineSession -Credential $cred -Verbose Import-PSSession $session -AllowClobber -Verbose

    Note: If you get a connection error on New-CSOnlineSession, add the parameter -OverrideAdminDomain "". More information click here.

  5. Configure Skype Online to share SIP domains with the Skype on-premises

    Set-CSTenantFederationConfiguration -SharedSipAddressSpace $True
  6. Check if the "SharedSipAddressSpace" was set to "True"


Configuring Skype 2015/Lync 2010/Lync 2013

  1. On front End Server, open the PowerShell console of Skype for business and run the following cmdlet:


    Check if the following parameters are enabled:

    AllowFederatedUsers : True EnablePartnerDiscovery : True AllowOutsideUsers : True RoutingMethod : UseDnsSrvRouting EnableSharedAddressSpace : True HostsOcsUsers : True
  2. If not, run the following cmdlet:

    Set-CsAccessEdgeConfiguration -AllowFederatedUsers $true -EnablePartnerDiscovery $true -UseDnsSrvRouting -AllowOutsideUsers $true

  3. Check if you already have a hosting provider:

    Get-CsHostingProvider -LocalStore
  4. If the hosting provider does not exist, create one:

    New-CsHostingProvider -Identity "Skype For Business Online" -Enabled $True -EnabledSharedAddressSpace $True -HostsOCSUsers $True -ProxyFqdn "" -IsLocal $False -VerificationLevel UseSourceVerification –AutodiscoverUrl

    Note: If your environment has Exchange Hybrid, create a hosting provider for it as well:

    New-CsHostingProvider -Identity "Exchange Online" -Enabled $True -EnabledSharedAddressSpace $True -HostsOCSUsers $False -ProxyFqdn "" -IsLocal $False -VerificationLevel UseSourceVerification
  5. Initiate the replication:


  6. Confirm the hosting providers were created successfully

    Get-CsHostingProvider -LocalStore

Moving users

Determining the Hosted Migration Service URL for your Office 365 tenant

  1. Open your web browser and access and log on using a Global Admin credential

  2. Open the Skype for Business admin center


  3. Copy the URL of your tenant and add the suffix "/HostedMigration/hostedmigrationservice.svc"


    Original URL:
    Changed URL:


Moving a test user

  1. Open the Skype for Business Server Management Shell

  2. Get your Office 365 Global Admin credential

  3. Move the test user

    Move-CsUser -Identity -Target -Credential $cred -HostedMigrationOverrideUrl

    Note: Use the "HostedMigrationOverrideUrl" that you have determinate earlier on this guide.

    Important: After the migration, wait for the replication and check on the portal the migrated user.

Validating functionalities

Validate the test user account's functionalities before moving any production users. Test all functionalities you have in production in your Skype/Lync infrastructure, including (but not limited to):

  • IM/P
  • Application Sharing
  • Conferencing
  • PPT sharing

Bulk migration examples

You can move multiple users at the same time combining the cmdlets Get-CsUser with filters and Move-CsUser. Here are some examples:

Move users from a specific RegistrarPool:

Get-CsUser -Filter {UserProperty -eq "UserPropertyValue"} | Move-CsUser -Target -Credential $creds -HostedMigrationOverrideUrl <URL>

Note: Use the "HostedMigrationOverrideUrl" that you have determinate earlier on this guide.

Move users from a specific OU:

Get-CsUser -OU "cn=hybridusers,cn=contoso." | Move-CsUser -Target -Credentials $creds -HostedMigrationOverrideUrl <URL>

Note: Use the "HostedMigrationOverrideUrl" that you have determinate earlier on this guide.

Creating a list of users in a CSV to move:

Get-CsUser -Identity |Select -Property DisplayName, SipAddress, EnterpriseVoiceEnabled, Identity | Export-Csv c:\allskypeusers.csv   $creds=Get-Credential   $user_to_skype = Import-Csv C:\allskypeusers.csv   $user_to_skype | % { Move-CsUser -Identity $_.SipAddress -Target -Credential $creds -HostedMigrationOverrideUrl <URL>     Write-host "User " $_.DisplayName " Migrated OK" -ForegroundColor Green }

Note: Use the "HostedMigrationOverrideUrl" that you have determinate earlier on this guide.