DirPrep : Un script PowerShell pour préparer une migration depuis Lotus Notes

Microsoft vient de mettre à dispostion DirPrep est un script Powershell qui prépare à la migration d’un environnement Lotus Notes existant vers un environnement Active Directory.

Le processus DirPrep va automatiquement se charger de peupler dans l’AD tous les attributs liés aux fonctions de messagerie des comptes utilisateurs, il va également créer les comptes pour les boites partagées et les boites de groupe, il va provisionner des comptes pour les salles et les ressources, ainsi que pour les groupes qui devront migrer depuis l’environnement Lotus Notes.

Cliquez pour télécharger l’outil DirPrep : Directory Preparation for Lotus Notes Migrations.

Microsoft publie Office 365 Helper Scripts

Microsoft vient de mettre à disposition en téléchargement un package qui inclue une série de scripts PowerShell qui ont été créés et utilisés durant des déploiement d’Office 365.Ces différents scripts sont documentés dans un fichier Word qui les accompagne. Pour exécuter ces scripts il est nécessaire de disposer des droits “administrator-level” dans Office 365 et d’avoir installé PowerShell pour Office 365. Voici la liste des scripts :

  • Set-MsolUserPasswordFromCSV : permet de gérer les mots de passe depuis un fichier CSV
  • NewRandomPasswordFile : génère des mots de passe aléatoires et les stocke dans un fichier CSV
  • NewDirSyncPowerShellShortcut : vérifie l’installation de DirSync et crée un raccourci
  • GetTotalUsersGroupsContactsInForest : cherche dans Active Directory et calcule le nombre total d’utilisateurs, de groups et de contacts pour chaque domaine
  • GetSyncedObjectCount : retourne le nombre d’objets qui ont été synchronisés avec Office 365
  • GetMsolUserReport : génère un CSV qui contient des informations sur les utilisateurs et les boites aux lettres.
  • GetMsolTenantSkuUsage : génère un bilan d’usage des licences Office 365 dans un fichier CSV  
  • AssignLicenseByDG : permet d’assigner une licence en fonction de l’appartenance à un groupe de distribution

Vous pouvez télécharger ce package en cliquant sur le lien suivant : Package de scipts PowerShell pour Office 365

Pour en savoir plus sur la liste des Applets de commande Windows PowerShell pour Office 365 cliquez ici.

Pour obtenir des information sur les cmdlets PowerShell disponibles dans Exchange Online, suivez ce lien.

BPOS – Sauvegarde et restauration de mails

Bien que la solution proposée par Microsoft soit apparemment vraiment fiable, il n’en est pas moins que rien n’est infaillible et les DSI ne voient pas leurs sauvegardes exécutée uniquement sur les serveurs de Microsoft d’un très bon œil (Ne me répondez pas que les sauvegardes peuvent se faire directement via Outlook avec l’archivage, je ne fait pas confiance à mes utilisateurs [;)].
Donc avec un peu de PowerShell, on peut facilement automatiser une sauvegarde.

SAUVEGARDE

Les commandes utilisées pour la sauvegarde seront Get-xsHostedExchangeMailboxData ainsi que export-transporterbinary.

Dans la commande Get-xsHostedExchangeMailboxData, vous  pouvez définir une fourchette de date pour choisir de quand à quand le dump des mails doit être fait. Pour cela utiliser les paramètres  -EmailEnd et -EmailStart. Mais dans le cas ou un administrateur veut planifier ses sauvegardes, ce système n’est pas très performant, il faut un système plus souple. Par exemple un calcul de date [:)]. Rien de plus simple, par exemple, pour sauvegarder les sept derniers jours, nous auront besoin de la date actuelle ainsi que celle d’il y a sept jours (donc –7) :

$DayToExport=[system.DateTime]::Now.Adddays(-7)
$Today=[system.DateTime]::Now

Idéalement, il faudrait faire une sauvegarde journalière (qui peut être supprimée après une semaine ou deux), une hebdomadaire (qui peut être supprimé tous les mois ou deux mois) puis une mensuelle (qui peut être supprimée tous les ans).

Donc voilà comment est composée la commande :

Get-XsHostedExchangeMailboxdata -EmailEnd $Today -EmailStart $DayToExport -sourceserver "red002.mail.emea.microsoftonline.com" -sourcelocation "https://red002.mail.emea.microsoftonline.com/exchange" -sourceidentity xcessiv@overthecloud.emea.microsoftonline.com | export-transporterbinary -targetfilepath c:\ExportMail -targetfileprefix "Sauvegarde"

Get-XsHostedExchangeMailboxData1

Ce script vous créé donc un fichier TBIN nommé “Sauvegarde” suivi de la date de la sauvegarde (sauf pour le premier fichier, qui lui se nommera seulement Sauvegarde.tbin) dans le dossier désiré (partage, dossier local…), ici c:\ExportMail.
Vous l’aurez compris, –SourceIdentity représente le compte à sauvegarder, –SourceServer et –SourceLocation sont les serveurs BPOS.
A savoir : Le fichier généré est inutilisable en dehors de BPOS… [:(]

On peut imaginer un script qui, avec une liste d’utilisateurs, personnaliser le nom des sauvegardes ainsi que leurs destinations, une planification des sauvegardes qui gère automatiquement le type de sauvegarde (sauvegarde différentielle ou complète), ou pour les comptes critiques une sauvegarde beaucoup plus régulière…

RESTAURATION

Bon, maintenant que nos sauvegardes sont faites, il faut penser à la méthode de restauration. Pour cela il faut se poser une question :

Est-ce une restauration complète ou simplement un (ou plusieurs) mail(s) précis à restaurer ?

En effet, l’import du fichier TBIN se fait en une fois, cela signifie que nous ne pouvons pas choisir les mails/dossiers à restaurer. Donc dans le cas d’une restauration de boite complète, cela ne pose pas de soucis, mais s’il faut restaurer moins que la totalité des mails, il faudra faire autrement.
La solution ici précisément, est d’utiliser une boite temporaire dans laquelle tout restaurer, puis de mettre une délégation à l’utilisateur pour qu’il récupère tout ce qu’il souhaite avant de supprimer la boite temporaire.

Les commandes à utiliser seront Import-TransporterBinary et Add-XsExchangeOnlineItem.

Import-TransporterBinary -Sourcefilename “C:\ExportMail\Sauvegarde.tbin” | Add-XsExchangeOnlineItem -identity xcessiv@overthecloud.emea.microsoftonline.com

Le paramètre-SourceFilename représente la localisation du fichier de sauvegarde
Le paramètre –Identity représente le compte sur lequel restaurer les mails. Comme dit plus haut, cela peut être la boite mail de l’utilisateur concerné ou une boite temporaire créée spécialement pour l’occasion sur laquelle on mettra des délégation afin que l’utilisateur puisse récupérer les mails de son choix.

Voilà qui est fait. Si vous avez d’autres solutions plus simples ou plus chères, je suis à votre écoute [:)]

BPOS – Supprimer un mail donné dans toutes les boites mails

Il vous est certainement déjà arrivé d’envoyer un mail qui n’aurait pas du être envoyé (oubli de pièces jointes, modifications, mauvaises blagues ou autre…) et de vouloir au final annuler cet envoi, mais trop tard.
Ou en tant qu’administrateur, un de vos supérieur (tout affolé, les bras levés vers le ciel) viens vous voir en vous demandant de supprimer le mail qui a été envoyé à toute la société contenant la liste des payes ou un employé qui lâche une bombe par mail avant son départ…

MessageOps a mis en ligne hier un script permettant de checker une a une toutes les boites mail de l’entreprise en recherchant un mail avec un sujet donné et en cas de résultat positif, de le supprimer.

Vous trouverez leur billet (en anglais) à ce lien :
http://www.messageops.com/deleting-a-message-from-all-mailboxes-in-exchange-online
Et le script à ce lien :
http://www.messageops.com/downloads/DeletebySubjectLast4hours.zip

Par défaut et par sécurité, ce script fonctionne en mode Test. C’est à dire qu’il ne check qu’une boite mail. Si vous venez à vouloir l’utiliser, vérifier plusieurs fois avant de l’exécuter (histoire d’éviter de vider les boites mail de toute votre entreprise [:)].

En pré-requis, vous aurez besoin d’EWS (Exchange Web Services Managed API) sur votre machine disponible sur le site de Microsoft.

Source : OverTheCloud

BPOS – Création d’un utilisateur sans synchro Active Directory

Il peut arriver que de petites et moyennes entreprises ne souhaitent pas mettre en place un serveur Active Directory, d’exchange (…) tout en souhaitant faire bénéficier de ces outils à ses collaborateurs… Vous l’aurez bien compris, ce qui motive tout ça, c’est l’investissement lié.
La solution est donc un service externalisé comme… (au hasard…) BPOS ?

Il y a deux manières de créer des utilisateurs sur BPOS sans passer par une réplication d’un AD. La première étant Via l’interface web d’administration et la seconde en PowerShell.

Avec l’interface web il n’y a rien de plus simple et si vous avez fait les choses correctement après votre inscription au service Microsoft Online Services, vous devriez avoir créé un compte administrateur autres que “admin@DOMAIN.emea.microsoftonline.com”. Si ce n’est pas le cas, dans l’onglet “Utilisateurs” puis dans la section “Actions”, vous trouverez le lien “Ajouter un nouvel utilisateur”. Après ça, vous n’avez qu’à remplir les champs désirés et/ou nécessaires.

Il y a aussi une méthode un peu plus “industrielle”, vous fournissez un fichier au format CSV et un script se charge de  créer les utilisateurs à la chaine. Pour ce faire, aller à l’onglet “Utilisateurs” puis dans la section “Actions”, vous trouverez le lien “Importer des utilisateurs à partir d’un fichier”. Là vous n’avez plus qu’à suivre les indications. Pour ce qui est du fichier CSV, voila sa structure (obligatoire) :

User Name,First Name,Last Name,Display Name,Job Title,Department,Office Number,Office Phone,Mobile Phone,Fax,Address,City,State or Province,ZIP or Postal Code,Country or Region

Et voilà un exemple de contenu

User Name,First Name,Last Name,Display Name,Job Title,Department,Office Number,Office Phone,Mobile Phone,Fax,Address,City,State or Province,ZIP or Postal Code,Country or Region
topsycret@overthecloud.fr,Topsy,Cret,Topsy-Cret,God,Heaven,123-4567,021-123-4567 ,71-123-4567,0233-123-456,Le Recoin ,Chamrousse,Rhône Alpes,38410,France
anneonyme@overthecloud.fr,Anne,O'nyme,Anne O'nyme,Personne, Nulle Part,123-4567,021-123-4567 ,71-123-4567,0233-123-456,Le Recoin ,Chamrousse,Rhône Alpes,38410,France

Attention cette méthode a ses limites. Vous devez importer au minimum un utilisateur (noooooon, tu crois ? :P) et au maximum 249 utilisateurs. Pour en importer plus de 249, il faudra créer d’autres fichiers CSV.

Passons maintenant à PowerShell 😉

Pourquoi le faire par PowerShell ? Parce que PowerShell c’’est bien ! Parce que c’est facilement modulable et aussi accessoirement parce que c’est souvent un moyen de différer les actions (avec un planificateur de tache par exemple).

Pour commencer, il est obligatoire d’Activer la synchro d’annuaires… Oui, à moi aussi cela me parait bizarre, mais bon, plus rien ne nous surprends 🙂

Pour cette étape, vous devrez tout de même vous connecter sur le portail d’administration, d’aller sur l’onglet “Migration”, cliquer sur “configurer” dans la section “synchronisation d’annuaires”, de cocher la case “j’ai lu le document de planification” puis de cliquer sur le bouton “Activer” afin d’activer la synchronisation d’annuaires.  ça ressemble beaucoup à une simulation de processus de synchronisation, mais je ne saurait expliquer pourquoi c’est obligatoire…

Une fois la synchronisation activée, nous pouvons passer à la création de l’utilisateur. Pour ceci, nous allons utiliser la commande Add-MSOnlineUser.

Add-MSOnlineUser -Identity choubaka@overthecloud.emea.microsoftonline.com -FirstName 'Chou' –LastName 'Baka' -DisplayName 'Chou Baka' -Credential $adminCredential

Add-MSOnlineUser

A ce stade, votre utilisateur est créé, mais n’est pas activé, n’a pas de licence BPOS de lié et pas de mot de passe. Bref ce compte est encore inutilisable.

Si vous venez à vouloir modifier des propriétés de vos utilisateurs (ville, numéro…) vous pouvez le faire avec la commande Set-MSOnlineUser

Set-MSOnlineUser –Identity choubaka@overthecloud.emea.microsoftonline.com -City 'Chamrousse' -JobTitle 'Ingénieur Couineur' -Credential $adminCredential
Set-MSOnlineUser

A savoir qu’il est impossible de modifier l’utilisateur via l’interface de gestion des utilisateurs (interface web). Oui, souvenez vous, votre utilisateur est en train de synchroniser avec un AD fantôme…

Si vous souhaitez pour les modifier via l’interface, il vous faudra désactiver la synchronisation…

Maintenant il ne reste qu’à activer l’utilisateur, lui attribuer un mot de passe, une licence…

La commande pour ça sera Enable-MSOnlineUser.

Enable-MSOnlineUser –Identity choubaka@overthecloud.emea.microsoftonline.com –Password b150uN0ur5 –SubscriptionIDs VOTRE_ID_SUBSCIPTION –UserLocation FR –Credential $adminCredential

Enable MSOnlineUser

Bon, ma commande n’est pas très optimisée. Par exemple, vous pouvez récupérer automatiquement votre ID_SUBSCRIPTION avec la commande Get-MSOnlineSubcription et l’intégrer à une variable (dans ce cas là, enlever le pipe ( | ) ainsi que tout ce qui se trouve après :

Get-MSOnlineSubscription -Credential $adminCredential | select-object SubscriptionId

Get-MSOnlineSubscription

Il existe aussi un paramètre supplémentaire dans cette commande afin de ne pas obliger l’utilisateur à réinitialiser son mot de passe à la première connexion (ChangePasswordOnNextLogon).

Voila, vous avez maintenant toutes les commandes nécessaires afin de créer/activer/modifier vos utilisateurs. Il ne vous manque plus qu’à créer un script tout beau, tout propre qui automatise l’envois de mail après la création et lancer ça un soir histoire de ne pas attendre devant son écran inutilement 🙂

Source : www.overthecloud.fr