BPOS – Réinitialisation de mot de passe en masse et notification par mail

Un autre billet autour de BPOS…

Je travaille actuellement sur un scénario de migration vers BPOS et je me rends compte qu’il est indispensable de disposer de modèles standards de communications, des scripts génériques et autres utilitaires du genre.

Dans mon scénario, une des dernières étapes est la communication du couple login/password à l’utilisateur avec un message de bienvenue et potentiellement en pièce jointe un rappel des procédures post-migration. Or, BPOS ne propose pas de choisir le mot de passe de l’utilisateur lors d’un reset massif, il ne permet pas non plus de personnaliser le mail envoyé à l’utilisateur… Et comme trop de communication tue la communication, il a fallu trouver un moyen de faire tout ça en une seule fois.

Sur le net, vous pouvez trouver une multitude de scripts permettant de reseter plusieurs mots de passes en une seule fois, de ne pas imposer le changement de mot de passe à la première connexion… Mais ils ne sont pas toujours réellement efficaces. La pluparts se contentent de lister les utilisateurs activés sur BPOS et de changer les mots de passes uns à uns, or on ne peut pas changer le mot de passe pour la session active (et le script tentera quand même de le changer), on ne peut pas choisir les utilisateurs à qui l’on souhaite réaliser cette modification (tout le monde passe dans la boucle)…

Pour ma part, j’ai choisi d’avoir un peu plus de souplesse. le script se base sur un fichier CSV contenant le nom de l’utilisateur (afin de personnaliser le mail), son identifiant (adresse mail) ainsi que son mot de passe temporaire. Il se présente de la manière suivante :

users.csv

name,mail,passwd
"User1",user1@mail.tld,S0nPassword
"Jimmy Marchetto",jimmy@marchetto.at,B1soun0ur5

Maintenant le script (commenté) :

ChangePasswd.ps1

#Identifiants Admin BPOS
$powerUser = "login@XXX.emea.microsoftonline.com"
$powerPass = "XXX"


$password = ConvertTo-SecureString $powerPass -AsPlainText -Force
$adminCredential = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $powerUser,$password

#Import CSV et récupération des données
$importusers = import-csv C:\Users\j.marchetto\Desktop\users.csv

$importusers | ForEach {
                #Changement de pwd, ne pas forcer le changement du pwd à la première connection
                Set-MSOnlineUserPassword -Identity $_.mail -Password $_.passwd -ChangePasswordOnNextLogon:$false -Credential $adminCredential -Verbose
                
                #Envoi du mail de la par de ...
                $MFrom = "jimmy@marchetto.at"

                #Passerelle SMTP à utiliser : Si votre compte est hosté sur BPOS, ne pas la changer
                $smtpServer = "smtp.mail.emea.microsoftonline.com"

                Destinataire du mail
                $to = $_.mail

                #Sujet du mail
                $subject = "New Microsoft Online Password"

                #Message Personnalisé
                $emailbody = "Hello ",$_.name,".Your Microsoft Online password was changed. Your new password is ",$_.passwd,". Please use the Microsoft Online Sign in Client to change it.  If you do not use the Sign In Client, browse to https://home.microsoftonline.com to reset your password.Regards,The support team"
                

                #Configuration du mailer
                $mailer = new-object Net.Mail.SMTPclient($smtpserver)
                $msg = new-object Net.Mail.MailMessage($MFrom, $to, $subject, $emailbody)
               
                #On précise que le mail est au format HTML pour bien interpréter les balises
                $msg.IsBodyHTML = $true

                #Envoi du mail
                $mailer.send($msg) 
}

Vous pouvez aussi attacher une pièce jointe au mail (procédures à exécuter post-migration par exemple) en insérant le code suivant ci-dessous avant le $mailer.send($msg) :

#Bien doubler le "\" pour qu'il soit bien interprété comme un chemin
$fileattachment = "c:\\test.txt"
$attachment = new-object Net.Mail.Attachment($fileattachment)
$msg.attachments.add($attachment)

Pour lancer le script, vous devez avoir l’outil de migration de Microsoft (que vous pouvez télécharger via la console d’administration) d’installé sur votre poste (pas nécessairement le serveur). Lancez l’outil “Migration Command Shell” placez-vous là où le script se trouve et exécutez la commande :

.\ChangePasswd.ps1

Voilà qui est dit, cela simplifie grandement une des phases de migration.

Si vous avez d’autres scripts, astuces ou autre, n’hésitez pas à me les faire parvenir 🙂

Source : OverTheCloud

Automatiser les modifications de mot de passe sur Microsoft Online Services

Créer les accès lorsque vous n’avez que quelques comptes utilisateurs peut être facilement réalisé par les interfaces fournies : Le portail d’administration Microsoft Online Services pour réinitialiser le mot de passe, et puis communiquer le mot de passe temporaire à votre utilisateur ou le saisir vous-même via le client de sign-in.

Mais que se passe-t-il si vous avez des dizaines, des centaines ou des milliers d’utilisateurs à configurer ? Coté service MOS, la procédure est assez simple. Par exemple, pour changer le mot de passe d’un utilisateur testing@orentis.com, il suffit d’un petit jeu d’instructions Windows PowerShell :

  • [PS] C:\> Add-PSSnapin Microsoft.Exchange.Transporter
  • [PS] C:\> $cred = Get-Credential
  • [PS] C:\> Set-MSOnlineUserPassword -Identity testing@orentis.com -Password P@ssw0rd -ChangePasswordOnNextLogon $false -Credential $cred

Notez que le paramètre -ChangePasswordOnNextLogon est réglé sur $false afin que l’utilisateur n’ait pas à changer de mot de passe à la première ouverture de session.

Ok pour la première partie. Sauf que nous devons encore communiquer ou configurer le client utilisant le sign-in Microsoft Online Services pour qu’il mémorise le nouveau mot de passe. N’y aurait-il pas un moyen pour automatiser cette action ou tout du moins éviter que ce soit l’utilisateur qui le fasse ou d’être obligé de se déplacer sur son poste ?

En fait, il faut tout d’abord savoir que les mots de passe sont hachés par une API (SSPI – Security Support Provider Interface) et stockés localement dans le Credential Manager (en français, le Gestionnaire d’identification). Celui-ci est accessible via l’applet correspondante dans votre panneau de configuration. Soit ! Mais la plupart des IT Pro ne sont pas des grands amateurs de Visual Studio et du C# ou du VB.NET. Vous trouverez ci-après la manière dont l’objet se présente dans le coffre du gestionnaire d’identification :

Heureusement, il existe un outil CmdKey qui permet de manipuler les informations d’identification stockées dans le coffre du Gestionnaire d’identification. Vous trouverez une description de l’outil ici. Celui devrait déjà être installé sur le poste de votre utilisateur (par exemple si celui-ci dispose de Windows 7 comme environnement client).

Au final, sur le poste client, il suffira de frapper l’instruction suivante cmdkey /generic:microsoftonline.com /user:testing@orentis.com /pass:P@ssw0rd pour remplacer l’ancien compte/l’ancien mot de passe par les nouvelles données.

Pensez à fermer le client de sign-in MOS avant l’opération et de le relancer après votre instruction afin que celui-ci se re-signe avec le nouvel identifiant.

Que vous reste-il à faire pour automatiser tout cela : Techniquement, pas grand chose, un peu de PowerShell ou de batch (Kill / Stop-Process) pour tuer automatiquement le sign-in MOS, puis une autre instruction pour le relancer. Et pour centraliser votre traitement sur plusieurs postes ? Là encore, vous trouverez votre bonheur soit avec un outil comme PSExec ou si vous êtes définitivement branché PowerShell, en exécutant du Remote PowerShell et en scriptant un peu (le lien suivant devrait vous y aider).

Note: Vous pouvez aussi vous servir de cette technique pour pallier à un autre soucis : le changement automatique de mot de passe qu’impose le centre de données Microsoft et éviter ainsi, si vous êtes administrateur que vos utilisateurs soient livrés à eux-même en termes de gestion de leurs mots de passe.

Auteur : Arnaud ALCABEZ avec son aimable autorisation.

Source : Blog des consultants Orentis

Solutions tierces pour Microsoft Online Services et BPOS

De nombreux partenaires ont déjà développé des solutions permettant de s’intégrer avec les services Microsoft Online.

En voici quelques-unes.

– Solutions de Migration des données vers Exchange Online (dans l’ordre alphabétique) :

. BinaryTree

. Bittitan

. Cemaphore/Sparxent

. Refresh IT

. Quest Software

Pour plus d’informations sur ces solutions, vous pouvez consulter les enregistrements du workshop.

– Solutions de Migration vers SharePoint Online

. Quest Software; pour plus d’informations, nous avons enregistré un Live Meeting.

. Metalogix

– Autres Solutions pour SharePoint Online

. Colligo ; pour plus d’informations, Microsoft a mis en ligne un enregistrement d’un Live Meeting.

– Solutions de Fax pour Exchange Online

Les solutions suivantes peuvent s’intégrer avec Microsoft Online :

. RightFax

. Ferrari Electronic

– Solution d’archivage pour Exchange Online

Les solution suivantes ont été testées et fonctionnent avec Exchange Online :

. Microsoft Exchange Hosted Archiving

. Symantec Enterprise Vault

– Autres Solutions pour Microsoft Online

. MessageOps : outils de synchronisation de mots de passe, monitoring Exchange, reset de mots de passe, notification avec OWA, … Un Live Meeting à ce sujet est organisé par Microsoft le 15 Avril

. BPOS-Experts : boite à outils pour l’offre Microsoft Online

Expiration des mots de passe : un script bien utile

Les petits gars de Messagops viennent de publier un script qui permet de notifier aux utilisateurs « deskless » ou à ceux qui n’utilisent pas le client lours et le client de SSO que leur mot de passe BPOS va expirer. J’en connais beaucoup qui vont être très heureux de disposer d’un tel outil.

Rendez-vous sur ce post en anglais pour plus de détails : http://www.messageops.com/blog/index.php?/archives/10-Microsoft-Online-Password-Expiration-Notification-Script.html