Pozn.: Zkoušel jsem na Skype for Business Server 2015 verze 6.0.9319.591 (July 2020).
Přesun uživatelů
Pokud máme zprovozněný Skype for Business Hybrid, tak můžeme uživatele přesouvat mezi prostředím On-Premises a Cloud. Umístění uživatele se označuje jako jeho domov - Homed. U uživatelů na interním serveru určujeme, do jakého jsou zařazeni Poolu (zjednodušeně na jakém serveru jsou doma). Cloud uživatelé mají jako domov Skype for Business Online, to se týká i Teams uživatelů (i pokud nepoužívají Skype for Business). V cloudu musí mít uživatel přiřazenu licenci než jej můžeme přesunout z On-Premises prostředí.
Přesun uživatelů musíme provádět na On-Premises prostředí, buď pomocí Control Panel nebo PowerShell. Můžeme přesouvat uživatele ze Skype for Business Server do Skype for Business Online či Teams (přesun je stejný, ale nastaví uživateli Teams Only mód). Nebo opačně z Online prostředí do On-Premises. Pro přesun musíme použít jeden účet, nebo dva účty, s dostatečným oprávněním pro obě prostředí.
Detaily ohledně přesunu uživatelů, včetně migrace schůzek a hlasových funkcí, jsou popsány v dokumentaci Move users between on-premises and cloud.
Skype for Business Server Control Panel
Pokud nám funguje přihlášení do Microsoft 365 z Control Panel (problémy jsem popisoval dříve), tak můžeme provést přesun uživatelů v GUI. Pokud nefunguje, tak stále můžeme využít PowerShell.
- Users - vyhledáme jednoho či více uživatelů
- označíme ty, které chceme přesunout
- menu Action zvolíme požadovanou možnost Move selected users to Teams, Move selected users to Skype for Business Online nebo Move selected users to on-premises
Skype for Business Server Management Shell
Spolehlivě by měl fungovat přesun uživatele cmdletem Move-CsUser
, který má řadu volitelných parametrů. Přijde mi, že Microsoft doplnil do dokumentace několik důležitých poznámek, které jsem tam před pár měsíci neviděl (a bojoval s několika problémy).
PowerShell musíme spustit pod účtem role CSServerAdminstrator, tedy správce interního serveru. Pokud tento uživatel nemá zároveň práva do Cloud prostředí, tak můžeme využít parametr -Credential
a zadat údaje jiného uživatele.
Důležité je, že pro přihlášení do Microsoft 365, ať z Control Panel nebo PowerShell, se musí zadat účet s defaultní doménou (končící .onmicrosoft.com
) a ne vlastní doménou. Pokud to nejde, tak můžeme použít účet na vlastní doméně (MS uvádí On-Premises účet synchronizovaný do Azure AD) a v cmdletu použít parametr -HostedMigrationOverrideUrl
a zadat URL naší cloudové správy.
Musíme určit správné URL, ve většině článků se uvádí následující, které pro nás nemusí být správné.
https://admin1a.online.lync.com/HostedMigration/hostedmigrationService.svc
Nyní již Microsoft popisuje Required administrative credentials, že se liší adminXX
podle umístění. Pokud použijeme špatnou adresu, tak cmdlet Move-CsUser
vrátí chybu.
HostedMigration fault: Error=(201), Description=(Cannot find user in Active Directory with the following SIP URI: "sip:test.o365@firma.cz")
Zjištění správné adresy můžeme řadou metod. Primárně jde o nějaký PowerShell dotaz do Skype for Business Online. Microsoft popisuje následující příkaz, kdy se kód vrací v parametru DC tvaru lyncXX001
. A XX
použijeme do URL adminXX
.
PS C:\> Get-CsTenant | FT Identity Identity -------- OU=bb9528c8-3d14-4888-91fd-baeeb2ae96ea,OU=OCS Tenants,DC=lync0e001,DC=local
Jednodušší vypadá jiný cmdlet.
PS C:\> Get-CsOnlinePowerShellEndpoint -TargetDomain firma.onmicrosoft.com | FL Host Host : admin0e.online.lync.com
Pokud chceme uživateli při přesunu natavit Teams Only mód, tak můžeme použít přepínač -MoveToTeams
.
Příklad přesunu uživatele
Nyní již máme všechny potřebné informace a můžeme sestavit příkaz pro přesun uživatele do cloudu.
$cred=Get-Credential $url="https://admin0e.online.lync.com/HostedMigration/hostedmigrationService.svc" Move-CsUser -Identity test.o365 -Target sipfed.online.lync.com -HostedMigrationOverrideUrl $url -Credential $cred
Přesun více uživatelů
V návodu přesunu uživatelů do Teams je poznámka (bez nějakého vysvětlení a nenachází se u přesunu do Skype for Business Online), že před přesunem se má uživateli vypnout Unified Contact Store. Popis nalezneme v Configure Skype for Business Server to use the unified contact store. Níže uvedený skript nastavuje uživatelům politiku bez Unified Contact Store. Tu musíme předem vytvořit.
New-CsUserServicesPolicy -Identity NoUnifiedContactStore -UcsAllowed $False
Ukázkový skript provádí následující
- nejprve se provede vzdálené připojení lokální Skype for Business Server
- dotáže se na přihlašovací údaje Online správce
- má nastaveno Admin URL (které může být potřeba změnit)
- uživatele načítá z textového souboru, který obsahuje uživatelská jména na samostatných řádcích
- nastaví se politika bez Unified Contact Store
MoveToTeams
uživatelé se přesouvají do TeamsConfirm:$false
je vypnuto potvrzováníBypassAudioConferencingCheck
neprovádí se kontrola, pokud je na interním serveru povoleno PSTN Dial-in Conferencing, a v Teams nemá uživatel potřebnou Audio Conferencing licenci (dojde k přesunu a uživatel přichází o tuto vlastnost)BypassEnterpriseVoiceCheck
neprovádí se kontrola, pokud má interní uživatel Enterprise Voice a v Teams nemá dostatečnou licenci (dojde k přesunu a uživatel přichází o tuto vlastnost)UseOAuth
Microsoft doporučuje použít OAuth autentizaci, ale při některých problémech s přihlášením se jasnější chyba zobrazí při Legacy LiveID authentication
$SfBSession = New-PSSession -ConnectionURI https://sfb.firma.local/ocspowershell -Authentication Negotiate Import-PSSession $SfBSession $cred = Get-Credential $url = "https://admin0e.online.lync.com/HostedMigration/hostedmigrationService.svc" Get-Content "d:\accounts.txt" | foreach { Grant-CsUserServicesPolicy -Identity $_ -PolicyName NoUnifiedContactStore Invoke-CsUcsRollback -Identity $_ -Confirm:$false Move-CsUser -Identity $_ -Target sipfed.online.lync.com -HostedMigrationOverrideUrl $url -Credential $cred -UseOAuth ` -MoveToTeams -BypassAudioConferencingCheck -BypassEnterpriseVoiceCheck -Confirm:$false } Remove-PsSession $LyncSession
Oprava Online účtu, který není povolen na interním serveru
Pokud máme synchronizovaného uživatele pomocí AAD Connect, a přiřazenu licenci, aniž by byl povolen na interním Skype for Business Server, tak je vytvořen jako Pure Online. O takovém účtu neví interní server a interní uživatelé s ním nemohou komunikovat. Oficiální dokumentace uvádí, že pro opravu je třeba jej povolit na interním serveru a přesunout. Dodatečně jsem ještě nalezl radu (kterou jsem nezkoušel), že je možno provést jedním příkazem.
Enable-CsUser -Identity username -SipAddress sip:username@firma.cz -HostingProviderProxyFqdn sipfed.online.lync.com
Informace o uživatelích
Informace o uživatelských účtech můžeme zobrazit v GUI (na webu) nebo pomocí PowerShellu. Základní údaj je, zda je účet na On-Premises serveru nebo v cloudu.
Skype for Business Server Control Panel
V Control Panel vidíme, kde se daný účet nachází (Homed). Pokud se nezobrazí, tak nebyl pro interní Skype for Business povolen. Pro uživatele v cloudu vidíme Office365 (pravděpodobně jde o název vytvořeného Hosting Provider), pro interní uživatele Pool.
Microsoft Teams Admin Center
V administraci Teams vidíme Directory status, který patrně ukazuje Online pro uživatele s licencí v cloudu, Unlicensed pro uživatele bez licence (může být na interním serveru), Unknown pro uživatele, který má účet na On-Premises serveru i v Teams. Můžeme si ještě zobrazit sloupec Interpreted user type, který má mnoho hodnot.
Pozn.: V Microsoft 365 se již nenachází odkaz na Skype for Business admin center, ani v Teams admin není odkaz Legacy portal. Ale zatím ještě funguje adresa https://webdir0e.online.lync.com/LSCP (je potřeba použít správný kód webdirXX, jak bylo popsáno u přesunu uživatelů). Zde jsou vidět pouze uživatelé s licencí, kteří nejsou na interním serveru.
Skype for Business Server Management Shell
Na interním serveru můžeme zobrazit řadu informací o uživatelích, kteří jsou zde povoleni. Příklad s atributy, které ukazují umístění účtu.
Get-CsUser bouska | FT UserPrincipalName, RegistrarPool, HostingProvider
Výstup pro různé uživatele. První dva jsou na interním serveru, poslední je v cloudu.
UserPrincipalName RegistrarPool HostingProvider ----------------- ------------- --------------- bouska@firma.cz sfb.firma.local SRV: test.onprem@firma.cz sfb.firma.local SRV: test.o365@firma.cz sipfed.online.lync.com
Pokud účet není povolen, tak se vrátí chyba.
Get-CsUser : Management object not found for identity "test.o365.2".
Skype for Business Online
Podobně můžeme zobrazit informace o uživatelích v cloudu.
Get-CsOnlineUser -Identity bouska@firma.cz | FT Alias, InterpretedUserType, TeamsUpgradeEffectiveMode, HostingProvider
Výstup pro různé uživatele. První uživatel je na interním serveru, ale má také licenci na Teams. Druhý je pouze na interním serveru. Třetí je korektně přesunutý do cloudu, kde má licenci (a nastaven mód Teams Only). Poslední uživatel má přiřazenu licenci, ale nebyl přesunut z interního serveru.
Alias InterpretedUserType TeamsUpgradeEffectiveMode HostingProvider ----- ------------------- ------------------------- --------------- bouska HybridOnpremSfBUserWithTeamsLicense Islands SRV: test.onprem HybridOnpremSfBUser Islands SRV: test.o365 HybridOnlineTeamsOnlyUser TeamsOnly sipfed.online.lync.com test.o365.2 AADConnectEnabledOnlineSfBUserWithTeamsLicense Islands sipfed.online.lync.com
Zajímavé údaje jsou v parametru InterpretedUserType
(zvláštní mi přijde, že neodpovídají tomu, co se zobrazuje v Microsoft Teams Admin Center). Možných variant je hodně a jsou relativně informativní. Můžeme tak identifikovat účty, které mají špatné nastavení. Všechny funkční by měly být Hybrid
a buď Online
nebo Onprem
.
Active Directory atributy
Snažil jsem se nalézt oficiální informace o atributech uživatelského účtu, které se týkají Skype for Business. Mnoho jsem toho nenalezl, takže zde jsou spíše odhady z praktických testů.
Jde o atributy začínající msRTCSIP
. Základní jsou následující (vedle je název na Skype for Business Server):
msRTCSIP-UserEnabled
=Enable
- zda je účet povolenmsRTCSIP-PrimaryUserAddress
=SIPAddress
- jeho SIP adresamsRTCSIP-DeploymentLocator
=HostingProvider
- určuje umístění, pro On-PremisesSRV:
pro cloudsipfed.online.lync.com
Po nastavení prvních dvou se uživatel zobrazí na interním Skype for Business Server. Pokud se třetí nastaví na sipfed.online.lync.com
, tak se zobrazuje jako v cloudu. Při synchronizaci těchto údajů do Azure AD se mění také InterpretedUserType
.
Další atributy, vyplněné u uživatelů, jsou
msRTCSIP-PrimaryHomeServer
msRTCSIP-FederationEnabled
msRTCSIP-InternetAccessEnabled
msRTCSIP-OptionFlags
Zatím zde nejsou žádné komentáře.