MovetoTeams
Seit Skype for Business CU8 gibt es einen neuen Parameter bei "Move-CSUser". Ich habe ihn genutzt, um mich direkt von Skype for Business OnPremise zu Teams Online zu verschieben. Beachten Sie dazu auch die Seite SfB Hybrid to Cloud und Move-CSUser 365.
Die Migration von Benutzern einer lokalen SfB Installation zu Teams ist im Grund eine Hybrid-Migration der Anwender zu SfBOnline und direkter Umschaltung des Interop-Mode zu "TeamsOnly". Die Migration wird On-Premises gesteuert. Siehe dazu Move-CSUser 365
Vorher: SfBWithTeamsCollab
Ich habe mit Skype for Business On-Premises angefangen und mit der Bereitstellung von Teams in der Cloud habe ich erst einmal im "Island"-Mode gearbeitet. Ich konnte mit anderen Teams-Benutzern mit allen Funktionen interagieren aber nicht telefonieren, da hier immer noch Skype for Business führend war. Irgendwann habe ich dann den Island-Mode verlassen und wurde zu einem "SfBWithTeamsCollab"-Benutzer. Ich konnte weiterhin mit Skype for Business On-Premises wie gewohnt arbeiten aber in Teams haben mit dann die Funktionen 1:1-Chat, Anrufe und Präsenz gefehlt. Mit dem Teams Policy Enforcement im April 2019 sind die Buttons letztlich auch im Client verschwunden:
Allerdings wurde der Druck immer größer, denn je mehr Personen in Teams arbeiten, desto eher verpasse ich etwas und gerade die "Offline-Zeit", die ich aufgrund von Reisen und Tätigkeiten bei Kunden doch habe, nervt meine Kollegen. In Skype vor Business konnte man mich ja nur erreichen, wenn ich "online" bin. Ansonsten wurden wieder Mails gesendet. Ehe ich zu "TeamsOnly" gewechselt bin, habe ich meine vorherige Konfiguration noch einmal dokumentiert:
# So sah die Konfiguration im lokalen Skype for Business On-Premises Server aus get-csuser frank.cariusxx@netatwork.de Identity : CN=Carius\, Frank,OU=Modern Workplace,OU=Abteilung,DC=netatwork,DC=de VoicePolicy : Default Policy VoiceRoutingPolicy : ConferencingPolicy : PresencePolicy : DialPlan : Dialplan ohne Amtsholung LocationPolicy : ClientPolicy : PaderbornClientPolicy ClientVersionPolicy : ArchivingPolicy : ExchangeArchivingPolicy : Uninitialized PinPolicy : ExternalAccessPolicy : Allow Federation+Public+Outside Access MobilityPolicy : PersistentChatPolicy : UserServicesPolicy : CallViaWorkPolicy : ThirdPartyVideoSystemPolicy : HostedVoiceMail : True HostedVoicemailPolicy : CVMPilot HostingProvider : SRV: RegistrarPool : nawlync002.netatwork.de Enabled : True SipAddress : sip:frank.cariusxx@netatwork.de LineURI : tel:+495251304613;ext=613 EnterpriseVoiceEnabled : True ExUmEnabled : False HomeServer : CN=Lc Services,CN=Microsoft,CN=1:34,CN=Pools,CN=RTC Service,CN=Services,CN=Configuration,DC=netatwork,DC =de DisplayName : Carius, Frank SamAccountName : fcarius
Und analog dazu die Einstellungen in Teams.
# Konfiguration in Microsoft Teams Get-CSOnlineUser | fl SipAddress,teams*,Registarpool SipAddress : sip:frank.cariusxx@netatwork.de TeamsUpgradeEffectiveMode : SfBWithTeamsCollab TeamsUpgradeNotificationsEnabled : False TeamsUpgradePolicyIsReadOnly : None TeamsUpgradePolicy : TeamsUpgradeOverridePolicy : RegistrarPool :
Move-CSUser
Mit dem CU8 für Skype for Business habe ich direkt die Change einer direkten Verlagerung nach Teams genutzt. Mit dem VERBOSE-Schalter ist etwas mehr zu sehen:
$cred=Get-Credential $url="https://admin0a.online.lync.com/HostedMigration/hostedmigrationService.svc" Move-CsUser ` -Identity frank.cariusxx@netatwork.de ` -Target sipfed.online.lync.com ` -MoveToTeams ` -Credential $cred ` -HostedMigrationOverrideUrl $url ` -Verbose VERBOSE: CN=Carius\, Frank,OU=Modern Workplace,OU=Abteilung,DC=netatwork,DC=de Confirm Move-CsUser [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):y VERBOSE: Validating parameters for move operation. VERBOSE: Calculating new server information for user [sipfed.online.lync.com]. VERBOSE: Moving user [sip:frank.cariusxx@netatwork.de] across deployments. VERBOSE: Initializing source external move endpoint. VERBOSE: Creating target external move endpoint. VERBOSE: Validating the hosted migration override URL provided: [https://admin0a.online.lync.com/HostedMigration/hostedmigrationService.svc]. VERBOSE: Retrieving web ticket URL. VERBOSE: Retrieving live id token. VERBOSE: Initializing source external move endpoint. VERBOSE: Validating user [sip:frank.cariusxx@netatwork.de] online, for On-Premises to online move. VERBOSE: Validating user [sip:frank.cariusxx@netatwork.de] locally On-Premises, for On-Premises to online move. VERBOSE: Validating read-write permissions on local Active Directory. VERBOSE: Invoking begin move for user [sip:frank.cariusxx@netatwork.de]. VERBOSE: Setting resource data for user [sip:frank.cariusxx@netatwork.de]. VERBOSE: Completing move for user [sip:frank.cariusxx@netatwork.de]. VERBOSE: Re-homing user [sip:frank.cariusxx@netatwork.de] on the source. VERBOSE: Re-homing user [sip:frank.cariusxx@netatwork.de] on the target. Results from this operation can be found at "C:\Users\carius\AppData\Local\ Temp\20\MoveResults-0fb2308e-a8f3-4e07-9ad2-36ec8830fb6f.csv".
Der Benutzer wurde in wenigen Sekunden in die Cloud verschoben und für Teams aktiviert. Dabei wurden auch meine Buddy-Listen mit übertragen, auch wenn ich die in Teams erst einmal nicht gesehen habe. Aber das ist ja bekannt, dass die Migration in der Cloud erst verzögert passiert.
Sichtbarkeit beim Anwender
Es hat nur wenige Minuten bei mir gedauert, bis ich mich nicht mehr in Skype for Business anmelden konnte bzw. der Skype for Business Client zu einem "Meeting Only"-Client zurück gefahren wurde:
Auch die Präsenzanzeige im Skype Client ist "ReadOnly" und kann hier nicht mehr geändert werden. Sie ist aber nicht in Echtzeit mit der Präsenz in Teams synchron. Mit dem Umzug von On-Premises in die Cloud ändert sich natürlich auch der Audio-Konferenz-Anbieter
Ich sollte auch alle von mit zukünftig geplanten Meetings aktualisieren, damit diese nicht mehr auf die alte On-Premises Topologie verweisen. Es gibt hier leider keine Umleitung nach der Migration eines Benutzers.
Nachher On-Premises
Änderungen durch die Migration betreffen auch das lokale AD-Benutzerobjekt als auch das Cloud Konto. Mein Konto wurde wie folgt geändert?
Get-CsUser frank.cariusxx@netatwork.de Identity : CN=Carius\, Frank,OU=Modern Workplace,OU=Abteilung,DC=netatwork,DC=de VoicePolicy : Default Policy VoiceRoutingPolicy : ConferencingPolicy : PresencePolicy : DialPlan : Dialplan ohne Amtsholung LocationPolicy : ClientPolicy : PaderbornClientPolicy ClientVersionPolicy : ArchivingPolicy : ExchangeArchivingPolicy : Uninitialized PinPolicy : ExternalAccessPolicy : Allow Federation+Public+Outside Access MobilityPolicy : PersistentChatPolicy : UserServicesPolicy : CallViaWorkPolicy : ThirdPartyVideoSystemPolicy : HostedVoiceMail : True HostedVoicemailPolicy : CVMPilot HostingProvider : sipfed.online.lync.com RegistrarPool : Enabled : True SipAddress : sip:frank.cariusxx@netatwork.de LineURI : tel:+495251304613;ext=613 EnterpriseVoiceEnabled : True ExUmEnabled : False HomeServer : CN=Lc Services,CN=Microsoft,CN=1:34,CN=Pools,CN=RTC Ser vice,CN=Services,CN=Configuration,DC=netatwork,DC =de DisplayName : Carius, Frank SamAccountName : fcarius
Sie sehen hier aber auch Einstellungen, die sicher obsolet sind. Einen Dialplan oder ExternalAccessPolicy wird On-Premises niemand mehr interessieren.
Nachher: Teams
Auch in Skype for Business Online sehe ich Veränderungen nach der Migration
Get-CSOnlineUser -Identity sip:frank.cariusxx@netatwork.de | fl sipaddress,teamsupgrade*,RegistrarPool SipAddress : sip:frank.cariusxx@netatwork.de TeamsUpgradeEffectiveMode : TeamsOnly TeamsUpgradeNotificationsEnabled : False TeamsUpgradePolicyIsReadOnly : None TeamsUpgradePolicy : UpgradeToTeams TeamsUpgradeOverridePolicy : RegistrarPool : sippoolbl20a20.infra.lync.com
Hier ist wichtig, dass ich erst mal als "TeamsUpgradeEffectiveMode" ein "TeamsOnly" habe. Ich habe aber immer noch einen "Registrar-Pool", obwohl ich schon 1005 Teams bin. Das ist aber normal, das jeder Teams-Benutzer immer noch einen Skype for Business Online-Konto hat. Dies ist u.a. für die Koexistenz mit Skype for Business Benutzern und Federation erforderlich.
ADSync
Da der Tenant im Hybrid-Mode läuft und daher auch das Office 365 Identity Management involviert ist, habe ich mal das Log von ADSync angeschaut. Interessanterweise gab es da nur ganz wenige Änderungen. Genau genommen war es nur das Feld "msRTCSIP-DeploymentLocator", der nun in die Cloud verwiesen hat. Damit "kennt" die lokale Skype for Business Topologie nun meine neue Position. Mehr hat sich aber nicht geändert.
Wenn Sie die Konfiguration von ADSync weiter anschauen, dann können Sie auch erkennen, welche Felder für die Synchronisation nicht eingeschlossen sind. z.B. die verschiedenen lokalen Skype for Business Policies.
Fehlt was?
Zuerst hatte ich darauf getippt, dass ich zu ungeduldig sei und daher einige Funktionen, insbesondere die Telefonie, noch nicht bereitgestellt wurden. Nach einiger Zeit habe ich mich dann aber entschieden doch noch mal nachzuschauen. Die VoicePolicies und RoutingPolicies, die ich bislang On-Premises hatte, gibt es so in der Cloud ja nicht mehr. Allerdings hat die Migration noch weitere Einstellungen schlicht ignoriert, z.B. wurde meine lokale Telefonnummer nicht in die Cloud übertragen. Hingegen wurden meine Kontakte alles komplett mit übertragen. Nur die dynamischen Gruppen, d.h. Skype for Business Einträge die auf Verteilergruppen basierten, wurden zwar mitgenommen aber waren leer. Teams kann aktuell keine Verteiler nutzen
Erforderliche Nachkonfiguration
Folgende Schritte musste ich also nach der Migration noch nachführen, da Sie nicht übertragen wurden:
# Aktivieren der Richtlinie, dass ich überhaupt anrufen darf Grant-CsTeamsCallingPolicy ` -Identity frank.cariusxx@netatwork.de ` -PolicyName AllowCalling # Zuweisen eines Dialplans zur Normalisierung der eingegebenen Rufnummern Grant-CsTenantDialPlan ` -Identity frank.cariusxx@netatwork.de ` -PolicyName PB-ohne-Amtsholung # Warum auch immer hat Move-CSUser diese Daten nicht selbst übertragen. # Beachte, dass diese mit Set-CSUser und nicht mit Set-CSOnlineUser geschrieben werden # Diese Werte werden nicht per ADSync gepflegt. Set-CsUser ` -identity frank.cariusxx@netatwork.de ` -EnterpriseVoiceEnabled $true ` -HostedVoiceMail $true ` -OnPremLineURI tel:+495251304613 # Festlegen der Voicerouting Policy. Ohne Richtlinie kommen die Microsoft Gateways als Falback zum Einatz # Das geht aber nur, wenn ich auch einen Dialplan zugewiesen bekomme. # Den konfigurierten Weg ueber Skype Hybrid (OPCH) ist nicht nutzbar. Grant-CsOnlineVoiceRoutingPolicy ` -Identity frank.cariusxx@netatwork.de ` -PolicyName DeStandard
All diese Einstellungen werden weder durch ADSync noch Move-CSUser übertragen. Es ist also durchaus eine Aufgabe für das Provisioning, damit Benutzer bei der Migration im Ziel korrekt konfiguriert sind.
CSOnline User
Nach all den Änderungen und etwas Wartezeit für die Replikation in Office 365 sieht mein Konto nun wie folgt aus (etwas gekürzt):
Get-CsOnlineUser -Identity sip:frank.cariusxx@netatwork.de Fax : +49 5251 304xxx HomePhone : +49(5257)938xxx IPPhone : City : Paderborn Manager : MobilePhone : +49 (xxx)xxxxxxxx OriginatorSid : OtherTelephone : {} Phone : +49 5251 304 613 AssignedPlan : {<XmlValueAssignedPlan> ....</XmlValueAssignedPlan>} InterpretedUserType : HybridOnlineSfBUser Alias : fcarius BaseSimpleUrl : https://meet.lync.com/netatwork DirSyncEnabled : True UsageLocation : DE HideFromAddressLists : False OnPremHideFromAddressLists : False ProvisionedPlan : {<XmlValueProvisionedPlan>....</XmlValueProvisionedPlan>} ProvisioningStamp : SubProvisioningStamp : UpgradeRetryCounter : 0 OnPremHostingProvider : sipfed.online.lync.com OnPremOptionFlags : 385 OnPremEnterpriseVoiceEnabled : True OnPremSIPEnabled : True OnPremSipAddress : sip:frank.cariusxx@netatwork.de OnPremLineURI : tel:+495251304613 ShadowProxyAddresses : {x500:/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=7f60f3091bb1453e93667ab06411f6dc-Carius, Fr, X500:/o=Net at Work GmbH/ou=Paderborn/cn=Recipients/cn=fcarius, sip:frank.cariusxx@netatwork.de, smtp:Frank.Carius2@email.netatwork.de...} SipProxyAddress : sip:frank.cariusxx@netatwork.de ServiceInstance : microsoftcommunicationsonline/instance03 LastSyncTimeStamp : 29.04.2019 18:20:04 LastProvisionTimeStamp : 07.04.2019 19:16:48 LastPublishTimeStamp : 10.05.2019 01:09:48 LastSubProvisionTimeStamp : 10.05.2019 01:07:43 OnlineDialinConferencingPolicy : ServiceAllowed SamAccountName : $abcdef-123457 UserPrincipalName : frank.cariusxx@netatwork.de FirstName : Frank LastName : Carius WindowsEmailAddress : frank.cariusxx@netatwork.de Sid : S-1-5-21-1234567890-1234567890-1234567890-12345678 LineServerURI : SoftDeletionTimestamp : AudioVideoDisabled : False IPPBXSoftPhoneRoutingEnabled : False RemoteCallControlTelephonyEnabled : False PrivateLine : AcpInfo : {<acpInformation default="true"> <tollNumber>4969677765841</tollNumber> <participantPassCode>0</participantPassCode> <domain>resources.lync.com</domain> <name>Microsoft</name> <url>https://dialin.lync.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx</url> </acpInformation>} OriginalPreferredDataLocation : HostedVoiceMail : True DisplayName : Carius, Frank ProxyAddresses : {x500:/o=ExchangeLabs/ou=Exchange Adm...} HomeServer : TargetServerIfMoving : EnterpriseVoiceEnabled : True EnabledForRichPresence : True ExchangeArchivingPolicy : Uninitialized NonPrimaryResource : False MNCReady : True TeamsVoiceRoute : False OnPremLineURIManuallySet : True OptionFlags : 196992 LineURI : tel:+495251304613 SipAddress : sip:frank.cariusxx@netatwork.de Enabled : True VoicePolicy : HybridVoice CallerIdPolicy : CallingLineIdentity : MobilityPolicy : MobilityEnableOutsideVoice ConferencingPolicy : BposSAllModality BroadcastMeetingPolicy : CloudMeetingPolicy : CloudMeetingOpsPolicy : TeamsMeetingPolicy : TeamsCallingPolicy : AllowCalling TeamsInteropPolicy : TeamsMessagingPolicy : TeamsUpgradeEffectiveMode : TeamsOnly TeamsUpgradeNotificationsEnabled : False TeamsUpgradePolicyIsReadOnly : None TeamsUpgradePolicy : UpgradeToTeams TeamsCortanaPolicy : TeamsOwnersPolicy : TeamsMeetingBroadcastPolicy : TeamsAppPermissionPolicy : TeamsAppSetupPolicy : TeamsCallParkPolicy : TeamsEducationAssignmentsAppPolicy : TeamsUpdateManagementPolicy : TeamsNotificationAndFeedsPolicy : TeamsChannelsPolicy : TeamsSyntheticAutomatedCallPolicy : TeamsTargetingPolicy : TeamsMobilityPolicy : TeamsIPPhonePolicy : TeamsEmergencyCallRoutingPolicy : TeamsEmergencyCallingPolicy : TeamsUpgradeOverridePolicy : TeamsVideoInteropServicePolicy : TeamsWorkLoadPolicy : ClientUpdatePolicy : ClientUpdateOverridePolicy : OnlineVoicemailPolicy : PresencePolicy : VoiceRoutingPolicy : RegistrarPool : sippoolbl20a20.infra.lync.com DialPlan : DE TenantDialPlan : PB-ohne-Amtsholung IPPhonePolicy : LocationPolicy : ClientPolicy : ClientVersionPolicy : ArchivingPolicy : LegalInterceptPolicy : PinPolicy : CallViaWorkPolicy : GraphPolicy : ExternalAccessPolicy : FederationAndPICDefault HostedVoicemailPolicy : BusinessVoice UserServicesPolicy : ExperiencePolicy : W15DefaultUX XForestMovePolicy : PreferredDataLocationOverwritePolicy : AddressBookPolicy : SmsServicePolicy : ExternalUserCommunicationPolicy : ThirdPartyVideoSystemPolicy : CloudVideoInteropPolicy : OnlineDialOutPolicy : OnlineVoiceRoutingPolicy : DeStandard HostingProvider : sipfed.online.lync.com ExUmEnabled : False Name : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx DistinguishedName : CN=xxx,OU=OCS Tenants,DC=lync0a001,DC=local WhenChanged : 10.05.2019 01:10:47 WhenCreated : 05.01.2012 10:45:16 OriginatingServer : BL20A00ADS06.lync0a001.local
Viele Felder, die etwas mit Teams, Konferenzen und Telefonie zu tun haben, sind noch nicht gefüllt. Über den DistiguishedName können Sie schön erkennen, dass Office 365 mehrere AD-Forests im Hintergrund betreibt.
Interessant ist, dass das Feld "OnPremLineURIManuallySet" hier auf $true steht. Vielleicht kann ADSync doch irgendwann auch diese Daten aus dem lokalen AD übertragen. Auf der anderen Seite finde ich das aber auch nicht schlimm, wenn ADSync diese Daten nicht setzt. Bei Exchange Hybrid ist ja ein lokaler Exchange Server für das Provisioning erforderlich (Siehe ADSync mit Exchange und ADSync mit Exchange Online).
Reaktionen
Mal abgesehen, dass ich nun in Teams als vollwertiges Mitglied arbeiten kann, war die Rückmeldung meiner Kollegen zu meinem "Neu erscheinen" in Teams durchgehend positiv.
Mit dem Wechsel habe ich nun in meinem Teams wieder die Funktion "Chat" und "Anrufe". Im Bereich Chat kann ich nun sogar wieder auf alle Chats zugreifen, die ich früher im Island-Mode geführt habe.
Weitere Links
- SfB Hybrid to Cloud
- Move-CSUser 365
- Teams Migration Service
-
TeamsOnly Tenant Umstellung
Sie sind in allein Teams. Dann können sie den Tenant umstellen - Move users from On-Premises to Teams
https://docs.microsoft.com/en-us/skypeforbusiness/hybrid/move-users-from-On-Premises-to-teams - Enable users for Enterprise Voice online
and Phone System in Office 365 Voicemail
https://docs.microsoft.com/en-us/skypeforbusiness/skype-for-business-hybrid-solutions/plan-your-phone-system-cloud-pbx-solution/enable-users-for-enterprise-voice-online-and-phone-system-voicemail