After a few years of fighting with Lync2010 , we decided to stop using this service on premise and migrate everyone to the cloud/Office365!
For something as Lync, privacy and auditing isn’t that important (not yet), so we guessed we can trust Microsoft on this one…
- First thing to do: create a trust between Microsoft and our on-premise AD.
This is done by implementing ad fs.
On top, you need to have an active “DirSync”, syncing your AD to the cloud.
To create the hybrid set-up with an on-premise Lync environment, and the “in the cloud”-office365 one, you’ll need the latest iteration of the Lync server software: version 2013.
So, we added the Lync 2013 servers to our 2010 deployment. And after some little hassles, everything started to work. (Single IP deployment, you can google around how to set it up)
You need a lync2013 edge and front-end, because we’ll need some specific features introduced in 2013.
- Next: the Office 365 part.
Office 365 is a complete infrastructure as a service platform from Microsoft offering Sharepoint, Exchange, Lync and some more Microsoft Services in the cloud. It’s pretty cool actually.
I’ve never been too fond of office 365: it’s cool, nice and cheap when everything is working. But when it start failing… You’re gone… AAAND you always have to mention the Patriot Act…
Anyway, since it’s February wave of updates, office 365 became even more functional!
It’s PowerShell support got an update, and now supports Lync Online cmldlets!
Before, you actually had to ask Microsoft to enable the PowerShell for Lync Online because it was in beta. Nowadays (since august), everyone gets it!
So, nice again 🙂
Msol-powershell doesn’t support a lot of cmdlets, but at least some essentials.
- To be able to migrate a user, we’ll have some more requirements: on premise active directory tweaking and office 365 domain setup.
Of course you need to connect your DNS-domain to your office365 tenant (can be done easily using dns-verification)
Next, make sure your AD upn (firstname.lastname@example.org) corresponds to your lync domain and your office 365 account. You can add the domain as a custom suffix in ad.
So, you’ll have an internal AD user email@example.com, firstname.lastname@example.org as sip-address, and the same email@example.com as office 365 user (synced by dirsync).
Your lyncdomain doesn’t exactly has to be the same as your login domain, but hey, “why make it simple and functional if you can make it complex and wonderful?!”…
After that, you can fire up PowerShell!
Fist of all, you have to add Lync Online as an trusted host on your onpremise lync and you have to make your on premise Lync share the SIP address-space with Lync online
Use “Set-CsHostingProvider” here…
And then you can actually move someone between both environments! 🙂 (make sure the user has a office365 license assigned). Again, all can be done in PowerShell.
So, connect to your onprem lync and office365, and push your clients to the cloud!
$CSSession = New-PSSession -ConnectionUri https://onpremlync.contoso.lcl/ocspowershell -Credential $AdminUsername -ErrorAction SilentlyContinue
Import-PSSession -Session $CSSession
$ExSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $cred -Authentication Basic -AllowRedirection
connect-msolservice -Credential $cred
$CSolSession = New-CsOnlineSession -Credential $cred
Import-PSSession $CSolSession –AllowClobber
get-msoluser -UserPrincipalName firstname.lastname@example.org | Set-MsolUser -UsageLocation “BE”
Set-MSOLUserLicense -UserPrincipalName email@example.com -AddLicenses CONTOSO:MCOSTANDARD
get-csuser firstname.lastname@example.org | Move-CsUser -Credential $cred -target “sipfed.online.lync.com” -HostedMigrationOverrideUrl “https://admin0a.online.lync.com/HostedMigration/hostedmigrationservice.svc” -ProxyPool “onpremlync13registrar.contoso.lcl”