PI Services

Le blog des collaborateurs de PI Services

Retour d'expérience : Migration de tenant Office 365 Partie 2

Introduction

Cet article divisé en deux parties est un retour d'expérience sur une migration entre tenant Office 365. Il ne traitera pas de tous les services disponibles sur Office 365 mais seulement de ceux rencontrés lors de la migration (voir Contexte). La première partie traitait de la migration des licences, du SSO (ADFS) et de Dirsync (http://blog.piservices.fr/post/Retour-dexperience-Migration-de28099un-tenant-Office-365-Partie-1.aspx). Cette seconde partie sera consacré aux autres services d'Office 365 (Yammer, Exchange Online, Sharepoint Online).

Contexte

Pour rappel, la société possédait deux tenant et souhaitait migrer les services de l'un des deux (nommé ici myenterprise1) vers le second (nommé ici myenterprise2). Pour chaque service, un listing des étapes à réaliser sera détaillé.

Exchange Online

Il n'existe pas de réel procédure pour la migration de boîtes aux lettres entre tenant. Le processus ci-dessous est manuel. Globalement, il consiste à exporter les boîtes aux lettres au format PST, à migrer le domaine SMTP puis à recréer les boîtes aux lettres sur le nouveau tenant. Cette procédure est entièrement manuelle. Voici un listing chronologique des étapes à appliquer :

  • Configuration du domaine SMTP sur le nouveau tenant (myenterprise2). Il ne faut bien évidemment pas faire la vérification mais simplement créé les enregistrements et valider qu'ils sont bien visibles avant de passer à l'étape suivante. Cela permet de réduire la coupure de service à quelques minutes. Si les enregistrements DNS ne sont pas créés en amont, le service peut être coupé le temps de la création de ceux-ci et de la propagation dans les DNS (cela peut durer 24H).
  • Création des utilisateurs sur le nouveau tenant (positionnement d'un suffixe UPN en *.onmicrosoft.com). Cela permet de gagner encore un peu de temps sur la coupure de service.
  • Sauvegarde des boîtes aux lettres sur l'ancien tenant (myenterprise1) au format PST (via Outlook par exemple).
  • Changement de domaine des utilisateurs sur l'ancien tenant (myenterprise1). Il suffit de définir leurs suffixes UPN sur le domaine *.onmicrosoft.com afin qu'il n'interfère pas avec la migration du domaine SMTP.
  • Suppression du domaine SMTP de l'ancien tenant (myenterprise1) Office 365.
  • Vérification du domaine sur le nouveau tenant et attribution de l'intention de domaine de type Exchange Online.
  • Changement du domaine d'appartenance des utilisateurs sur le nouveau tenant (mise en place du nouveau domaine SMTP).
  • Activation des boîtes aux lettres pour les utilisateurs sur le nouveau tenant (myenterprise2).
  • Import du PST d'export réalisé précédemment pour chaque boîte aux lettres sur le nouveau tenant (myenterprise2).
  • Reconfigurer les clients Outlook. Il est nécessaire de supprimer le profil et de le recréer pour que la boîtes aux lettres soit accessible.

Toutes les étapes de changements d'UPN sont automatisables via Powershell avec la commande Set-MsolUserPrincipalName (voir script de la section Modification des utilisateurs de la partie 1).

Cette procédure est donc valable pour un faible nombre de boîtes aux lettres. Si le volume de boîte aux lettres est trop important, il reste deux solutions possibles mais plus lourdes et/ou plus onéreuses :

  • Migrer vers une infrastructure On Premise Exchange (scénario prévu par Microsoft) puis rebasculer sur le nouveau tenant Exchange Online.
  • Utiliser des outils de migrations payants.

Sharepoint Online

Comme pour d’autres services Office 365, la migration d’un site Sharepoint Online est manuelle. La migration se déroule en cinq étapes :

  1. Récupération du contenu
  2. Génération d’un modèle
  3. Import du modèle
  4. Intégration du contenu
  5. Paramétrage du nouveau site : il s’agit de reconfigurer les paramètres comme les autorisations utilisateurs.

Nous allons nous intéresser à la migration du contenu, à la génération du modèle de site et à l’import de ce dernier.

Migration du contenu

Afin de migrer le contenu d’un site Sharepoint Online, il faut utiliser OneDrive. Il est nécessaire de se connecter au site web à migrer est de copier tout le contenu du site. Néanmoins si votre site possède moins de 50Mo de contenu, il suffira de l’inclure dans le modèle. En effet, ce dernier peut inclure du contenu si celui-ci ne dépasse pas cette limite de taille.

NB : Il existe aussi des outils de migrations payant.

Génération du modèle de site

La génération du modèle de site se fait via la console d’administration du site (Paramètre du site).

image Dans la section Action du site, il faut choisir “Enregistrer le site en tant que modèle”.

image

Un assistant vous proposera ensuite de donner un nom au modèle et éventuellement d’inclure le contenu du site (cette opération n’est fonctionnelle que si votre contenu pèse moins de 50Mo).

image

Vous pourrez ensuite accéder à la galerie des solutions et télécharger le modèle au format .wsp.

NB : L’option “Enregistrer le site en tant que modèle” n’est parfois pas disponible. Pour l’activer, il faut utiliser Sharepoint Designer 2013. Il est nécessaire d’ouvrir le site depuis ce logiciel en spécifiant son url et de choisir “Options de site” dans le ruban.

image

Enfin, il faut changer la valeur du paramètre “SaveSiteAsTemplateEnabled” à “True” et appliquer le changement. Ainsi, l’option d’enregistrement du site en tant que modèle sera disponible dans les paramètres du site Sharepoint.

image 

Import du modèle de site

Pour importer un modèle de site, il suffit de créer un nouveau site en spécifiant un modèle personnalisé (le modèle devra être fourni ultérieurement).

image

Enfin, il faut ouvrir le nouveau site web et choisir “Galerie Solution” dans lors du choix du modèle. Ce lien vous mènera à une fenêtre permettant de charger le fichier .wsp précédemment créé via le bouton “Télécharger la solution”.

image 

Yammer

Yammer étant un service encore peut intégré avec Office 365, il est plus facile à migrer entre deux tenants. Tout d'abord, il est nécessaire de supprimer le domaine qui correspond au nom du réseau Yammer sur l'ancien tenant(myenterprise1). Il s'agit ensuite de l'ajouter sur le nouveau tenant (myenterprise2).

Si le domaine n'est pas fédéré, il faut que ce dernier soit défini comme domaine par défaut de Yammer. Dans le cas contraire, une erreur est remontée au moment de l'activation du service Yammer. Pour réaliser cette opération, il suffit de se rendre dans le listing des domaines, de sélectionner le bon domaine est de cliquer sur l'option “Définir par défaut”.

Yammer Domain

Nous pouvons ensuite activer Yammer sur le nouveau tenant (myenterprise2). Dans le panneau d'administration d'Office 365, il faut cliquer sur “Tableau de bord” puis choisir “Service Inclus”. Un nouveau panel apparaît sur la droite permettant d'activer Yammer.

Yammer

On peut ensuite confirmer l'activation du service.

Yammer Enable Yammer Enable 2

Le réseau Yammer est rattaché au nouveau tenant dès que le service est activé. Il existe deux types d'administrateurs sur Yammer :

  • des administrateurs déclarés directement dans Yammer
  • des administrateurs héritant de ces droits car ils possèdent le rôle administrateur général du tenant

Les premiers ne subissent aucune perte de droits pendant la migration. Cependant pour la seconde catégorie, il est nécessaire que les utilisateurs aient un compte avec le rôle administrateur général sur le nouveau tenant sinon ils perdront les droits d'administration de Yammer en plus des droits d'administration du tenant (on peut aussi les déclarés directement dans Yammer si on ne souhaitent plus qu'ils soient administrateurs du tenant).

Concernant Yammer Dirsync, comme ce dernier n'interagit pas avec Office 365 (il s'agit d'un second produit de synchronisation différent d'Office 365 Dirsync), il n'y a aucune manipulation à réaliser. Il en est de même pour la configuration du SSO via ADFS.

OneDrive

Concernant OneDrive, il faut, pour chaque utilisateur :

  • Arrêter la synchronisation du dossier
  • Désactiver l'utilisateur sur l'ancien tenant (myenterprise1)
  • Créer son compte sur le nouveau tenant (provisionning manuel ou via Dirsync)
  • Synchroniser le nouveau dossier personnel dans lequel on copiera le contenu qui aura été conservé en local sur la machine.
    OneDrive

Il existe des outils payant si vous souhaitez automatiser le transfert des données entre les deux tenants. Néanmoins, il restera à reconfigurer le client OneDrive.

Conclusion

Contrairement à la migration du SSO et de la synchronisation Dirsync qui est plus structurée (bien qu'il n'existe pas non plus de procédure officielle), la migration de services Office 365 entre tenant est actuellement totalement manuelle et relève plus d'astuces que de réels procédures.

WINRM : Résolution de l'erreur -2144108526 0x80338012

 

Aujourd’hui mon 2ème blog va porter sur l’erreur WINRM : -2144108528 0x80338012 que l’on peut retrouver sur tout les serveurs de :                                                                                                                                 - Windows 2003 SP2 à Windows 2012 R2. Là aussi pour trouver une solution sur internet est introuvable.

PERIMETRE: Dans le cadre de l’organisation des reboot de 400 serveurs chez un de nos client, j’ai mis en place une vérification Post-démarrage de ces 400 serveurs.

Voici la commande du script powershell qui permet de vérifier si le service MSDTC qui est commun au serveur 2000 à 2012 R2 ,  l’exemple ci-dessous porte sur 1 serveur le but étant de démontrer l’erreur winrm.

Nous allons utiliser le script powershell ci-dessous depuis le serveur source, pour rappel $computerdestination est la variable qui contient le nom du serveur distant.

######SERVEURS A TESTER################

$Computerdestination = "SRVxxx"

######SERVICES A VERIFER################

$Servicesname = "MSDTC"

Invoke-Command -ScriptBlock {param($ServicesName) Get-Service $ServicesName -ErrorAction stop | select PScomputerName,Status,Name   } -ArgumentList $ServicesName -ComputerName $Computerdestination

Ce qu’il faut effectuer AVANT de lancer le script,ouvrir la console powershell

Taper sur le serveur de destination : WINRM QUICKCONFIG

clip_image001

1er message d’erreur : sur le serveur de destination

Le service Windows Remote Management (WS-management) WINRM n’est pas démarrer automatiquement  et il refuse de démarrer automatiquement

1ère Résolution : Démarrer le service d’administration IIS (demarré –automatique) , puis relance sous powershell de winrm quickconfig , Set-WSManQuickConfig et Enabled-psremoting

clip_image001[6]

2ème message d’erreur : serveur destination

clip_image002

2ème  Résolution : Taper GPEDIT.MSC puis activé : autoriser l’acces au environnement  distant (voir ci-dessous)

clip_image003

Puis le relancer  le script depuis le serveur source  sous powershell

######SERVEURS A TESTER################

$Computerdestination = "SRVxxx"

######SERVICES A VERIFER################

$Servicesname = "MSDTC"

Invoke-Command -ScriptBlock {param($ServicesName) Get-Service $ServicesName -ErrorAction stop | select PScomputerName,Status,Name   } -ArgumentList $ServicesName -ComputerName $Computerdestination

RESULTAT : CONCLUANT

clip_image004

WINRM : Erreur-2144108387 0x8033809D

 

Aujourd’hui mon blog va porter sur l’erreur WINRM : 2144108387 0x8033809D que l’on peut retrouver sur tout les serveurs de :                                                                                                                                 - Windows 2003 SP2 à Windows 2012 R2. Même en regardant dans l’observateur d’évènement ID 4 qui correspond à une solution TechNet qui n’est pas adapter à la situation.

PERIMETRE: Dans le cadre de l’organisation des reboots de 400 serveurs chez un de nos client, j’ai mis en place une vérification Post-démarrage de ces 400 serveurs.

Voici la commande du script powershell qui permet de vérifier la date les derniers redémarrage des serveurs, bien sûr l’exemple ci-dessous porte sur 1 serveur le but étant de démontrer l’erreur winrm.

SCRIPT:

$computer = "SRV01"   
$LastBootUpTime = ([Management.ManagementDateTimeConverter]::ToDateTime((Get-WmiObject Win32_OperatingSystem).LastBootUpTime)).ToString("dd'/'MM'/'yyyy-HH'h'mm")

Invoke-Command -ScriptBlock { $LastBootUpTime }  -ComputerName $computer

RESULTAT:

image

ACTIVATION WINRM:

Bien évidement tout ceci est conditionné par le fait qu’il faille activer winrm sur tout les serveurs et que le port 5985 doit être ouvert lui aussi (invoke-command est utilisé, il lance la commande à distance .

sur certains serveurs, j’ai rencontré des problèmes lié à l’activation de WINRM dont l’un des serveurs SRV01.

ERREUR :

clip_image001

IDENTIFICATION DE L’ERREUR :  Apparemment lorsque le rôle serveur WEB est mis en place sur un serveur, il se peut que le TRANSPORT HTTP soit lié à un compte de service web exemple : SVC- WEB

Comment déterminer si un  compte de service est  attribué au service HTTP avec la commande exemple :                                                                       

setspn –q */srv01 

                                                                                                                                Une liste s’affiche ci-dessous : nous voyons clairement en violet que le service http est lié au compte de service web :  SVC- WEB

Checking domain DC=domaine,DC=com

CN= SVC- WEB,OU=Utilisateur,OU=Ordinateurs,DC=domaine,DC=com

      HTTP/SRV01

       HTTP/SRV01.domaine.com

TERMSRV/SRV01

       TERMSRV/SRV01.domaine.com

       WSMAN/SRV01.domaine.com

       RestrictedKrbHost/SRV01.domaine.com

       HOST/ SRV01.domaine.com

       WSMAN/SRV01

       RestrictedKrbHost/SRV01

       HOST/SRV01

Existing SPN found!

RESOLUTION : 

à savoir que cela puisse ne pas être une solution car il faut déterminer si les SITES WEB s’appuie sur un compte de service web et si ce compte ne gère pas d’autre site web qui s’appuie dessus , alors la solution appliquer ne permettra plus d’effectuer sous IE une requête sur:

 http://SRV01:80 ou http://SRV01:443                                                                                                                                                            Par contre si avez mis en place un cluster NLB site web exemple : http/clustersrv01-02.domaine.com, alors la solution peut être envisager

La commande permettant de ne plus lier le service http au compte de service WEB (SVC-WEB) est la suivante :

- Setspn   –D  http://srv01  SVC-WEB

- Setspn   –D  http://srv01.domaine.com SVC-WEB

Lorsque vous effectuer de nouveau la commande query :  setspn -q */srv01 nous voyons de nouveau  qui est lié au compte d’ordinateur  et plus au compte de service WEB si vous effectuer de nouveau  WINRM QC cela fonctionnera.

Checking domain DC=domaine,DC=com

CN= SRV01,OU=server,OU=Ordinateurs,DC=domaine,DC=com

TERMSRV/SRV01

       TERMSRV/SRV01.domaine.com

       WSMAN/SRV01.domaine.com

       RestrictedKrbHost/SRV01.domaine.com

       HOST/ SRV01.domaine.com

       WSMAN/SRV01

       RestrictedKrbHost/SRV01

       HOST/SRV01

Existing SPN found!

 

 

Lync 2013 – Lync client devient Skype Entreprise

Nouvelle interface

Dès aujourd’hui (mardi 14 avril 2015) Lync client devient Skype Entreprise (Skype for Business en anglais).
Cette modification apporte une refonte complète de l'interface Lync cliente. Les fonctionnalités de cette nouvelle version restent pour le moment inchangées (par rapport à Lync client 2013).
image

Activer ou désactiver Skype Entreprise

Il est pour le moment possible de désactiver l'interface Skype Entreprise pour les utilisateurs Lync Online.
Pour se faire il faut se connecter en PowerShell à Lync Online.
Téléchargement du module PowerShell pour Lync Online : http://www.microsoft.com/en-us/download/details.aspx?id=39366
Utilisez ensuite les commandes suivantes :
   Import-Module LyncOnlineConnector
   $session = New-CsOnlineSession –Credential username@domaine.com
   Import-PSSession $session

Remarque : Si le domaine du compte administrateur n'est pas @tenant.onmicrosoft.com, il faut ajouter le paramètre –OverrideAdminDomain "tenant.onmicrosoft.com" à la commande PS.
Lancez la commande Get-CsClientPolicy | ft Identity,EnableSkypeUI. Deux politiques existent déjà, une pour activer l'interface Skype et l'autre pour la désactiver.
image

Pour ajouter une politique à un utilisateur il faut lancer la commande suivante :
Get-CsOnlineUser Utilisateur@domaine.com | Grant-CsClientPolicy –PolicyName Police

image

image

Office 365 – Retour d’expérience d’une migration IMAP

Introduction

L'offre Office 365 inclut un outil de migration. Cet outil permet la migration des boites mails depuis Exchange (2003 / 2007 / 2010 /2013) vers Office 365 ou depuis un autre serveur de messagerie utilisant l'IMAP vers Office 365.
Ce billet portera sur mon retour d'expérience d'une migration IMAP vers Office 365.

Retour d'expérience

Les prérequis


1) Chaque compte migré doit avoir un utilisateur unique associé avec une licence active. Le compte peut être uniquement dans le cloud ou synchronisé avec Active Directory (via DirSync par exemple).
Dans le cadre d'une architecture hybride (c'était le cas dans ce projet), d'autres prérequis utilisateurs sont nécessaires. L'utilisateur doit être "connu" par les serveurs Exchange OnPremise. Pour cela la commande PowerShell suivante est à passer sur les serveurs Exchange OnPremise :

Enable-RemoteMailbox –Identity Utilisateur –RemoteRoutingAddress utilisateur@tenant.mail.onmicosoft.com –PrimarySMTPAddress utilisateur@domaine.fr
Remarque : Attention, si l'utilisateur possède d'autres adresses SMTP que la principale il est nécessaire de les indiquer dans la commande à l'aide du paramètre EmailAddresses
Remarque 2 : Il est également recommandé d'avoir l'UPN (UserPrincipalName) de l'utilisateur qui soit égal à l'adresse email afin de faciliter la connexion aux services Office 365.

2) Un Migration Endpoint avec les éléments suivants :

  • L'URL du serveur IMAP
  • Le type d'authentification (Basic ou NTLM)
  • Le chiffrement (Aucun, SSL, TLS)
  • Le port utilisé pour se connecter en IMAP au serveur
  • Le nombre maximum de migrations simultanées
  • Le nombre maximum de synchronisation incrémentales simultanées

image
3) Un fichier CSV contenant l'adresse email cible, le nom d'utilisateur et le mot de passe du compte IMAP (ou d'un compte administrateur). Le fichier CSV sera construit ainsi :

Les éléments migrés


La migration IMAP n'inclut que la partie mail. En effet les éléments de type contacts, calendrier, tâches… ne sont pas pris en compte.
La migration IMAP prend en compte les mails qui se trouvent dans les différents dossiers (et sous dossiers) personnels ainsi que les dossiers de base (Boite de réception, éléments envoyés, éléments supprimés…).

La migration


La migration se déroule par lot. Chaque lot peut comporter jusqu'à 5000 utilisateurs.
Pour une meilleure gestion des erreurs et de la volumétrie, des lots de 1200 utilisateurs environ ont été fait.
A titre d'exemple, le temps de migration pour un lot de 1200 utilisateurs ayant une volumétrie d'environ 30 Go au total (soit une moyenne de 25Mo/BAL) a mis un peu plus de deux heures.
Cette estimation est bien évidement propre à l'architecture et peut être différente en fonction de la bande passante et des performances du serveur source.

La gestion des erreurs


Il est courant qu'un lot de migration comporte des erreurs. Pour les identifier il est possible d'utiliser la commande PowerShell suivante sur le tenant Office 365 :
Get-MigrationUser -ResultSize Unlimited | ?{$_.Status -ne "Synced"}

image

Les utilisateurs en échec peuvent être sorti du lot de migration et relancés dans un lot séparé.
Remarque : Un utilisateur ne peut pas être inclus dans un nouveau lot s'il appartient déjà à un lot. Microsoft met également à disposition des rapports (au format CSV) sur la plateforme d'administration d'Office 365 – Exchange.

Conclusion

Dans le cadre de cette migration, le pourcentage d'erreur a été de 0.2% (moins d'une vingtaine de boites en erreur sur plus de 6000 boites migrées).
Le seul point négatif est la limite des éléments migrés. Les calendriers, carnets d'adresses… ne sont pas pris en compte et doivent être fait manuellement par l'utilisateur ou via un autre outil de migration.


Pour conclure l'outil de migration fonctionne parfaitement. Même s'il possède peu de fonctionnalités contrairement à d'autres outils de migration (Refresh IT, Quest…) il permet une migration simple à un moindre coût.

SCOM - Créer une vue avec un filtre « NOT »

 

Tout administrateur SCOM qui se respecte a déjà été amené à créer des vues d’alerte ou d’état spécifiques, ciblées sur une classe et filtrées en fonction d‘un niveau de résolution (resolution state), d’une criticité…

clip_image001

clip_image002

Une problématique revient cependant de temps en temps : comment créer une vue qui exclue spécifiquement certaines alertes en fonction de leur nom ?
Autrement dit, comment afficher toutes les alertes SAUF celles correspondant à un certain nom ?

Le filtre « with a specific name » ne permet à première vue pas de réaliser cette exclusion ; il semble plutôt prévu pour fonctionner en mode « inclusif » : seules les alertes répondant à la chaine de caractères entrée seront affichées :

clip_image004

Mais il est en réalité possible d’utiliser une expression d’exclusion dans ce champ, en plus des wildcards « SQL », à l’aide de la syntaxe suivante :

[^AlerteAExclure]

clip_image006

Voici le résultat obtenu :

clip_image008

Il est également possible de combiner plusieures exclusions à l’aide du symbole « pipe » :

[^(AlerteAExclure)|(TestAlert2)]

Attention toutefois, cette astuce exclut en réalité un groupe de caractères et ne supporte donc pas l’utilisation d’espaces.