Office 365 : Définir le ImmutableID d’un compte sur $null

I. Présentation

Dans ce tutoriel, je vais vous expliquer comment supprimer la valeur de l'attribut ImmutableId d'un compte Office 365, en PowerShell. Cette opération s'effectue seulement en PowerShell.

Par définition, le terme "immutable" signifie "ne peut pas être changé" ou "inaltérable" : l'ImmutableId est une protection pour associer un utilisateur de l'AD local synchronisé avec Azure AD Connect avec l'utilisateur Cloud au sein du tenant Office 365.

Grâce à cet identifiant, l'utilisateur Active Directory local et l'utilisateur Office 365 sont liés. Cela évite qu'un utilisateur avec le même UPN puisse récupérer la boîte e-mail du premier utilisateur (si celui-ci venait être à supprimer, par exemple) car l'ImmutableId ne correspondrait pas.

Il est à noter que l'ImmutableId correspond à l'objectGUID de l'objet synchronisé (exemple : un utilisateur) transformé en base-64. Le script suivant permet de faire la conversion dans les deux sens : Convertir GUID - ImmutableId

II. Purger l'ImmutableId

Pour purger l'ImmutableId d'un compte Office 365, nous devons utiliser le cmdlet Set-MsolUser qui sert à modifier les propriétés d'un compte utilisateur. Le paramètre -ImmutableId est justement là pour ça : modifier l'ImmutableId du compte. Nous allons lui attribuer la valeur $null et dans la commande, il est indispensable d'encadrer $null par des guillemets sinon ça ne fonctionne pas (bien que la commande ne retournera pas d'erreur).

Avant d'exécuter la commande ci-dessous, il faudra penser à se connecter à votre tenant Office 365 via PowerShell et la commande Connect-MsolService.

Voici comment supprimer l'ImmutableId de l'utilisateur [email protected] (identifié par son adresse e-mail / UPN) :

Set-MsolUser -UserPrincipalName [email protected] -ImmutableID "$null"

Dans la foulée, nous pouvons vérifier que l'attribut est bien vide pour cet utilisateur grâce à la commande suivante :

Get-MsolUser -UserPrincipalName [email protected] | Select-Object UserprincipalName,ImmutableID

A vous de jouer ! ??

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau et cofondateur d'IT-Connect. Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian a publié 3118 articlesVoir toutes les publications de cet auteur

3 thoughts on “Office 365 : Définir le ImmutableID d’un compte sur $null

  • Bonjour Florian,

    Quel pourrait être l’utilité de rendre l’immatbleID à nul s’il te plait ?

    Répondre
    • Bonjour Benoit,

      Par exemple si tu veux détacher le compte Office 365 associé à un utilisateur A (Active Directory) pour le rattacher sur un utilisateur B, cela est indispensable car sinon cet attribut empêche cette opération par mesure de sécurité.

      Bonne soirée
      Florian

      Répondre
    • je te prends l’exemple d’une migration local AD vers Azure AD.

      tu fais tes synchro, tu t’assure que tes utilisateurs aient bien leurs boite email dans le cloud, avant de faire la suppression de ton serveur local, tu passe l’étape suivante :

      Sur ton local AD, tu supprime tes utilisateurs, ils vont se retrouver dans la corbeille 365.

      Le jeu consiste à remonter les utilisateurs mais depuis 365 :

      $adminUPN= »[email protected] »
      $cred = get-credential -UserName $adminUPN -Message « Type the password. »
      Connect-MsolService -credential:$cred

      #restauration des utilisateurs de la corbeille azureAD
      $UserSup = Get-MsolUser -ReturnDeletedUsers

      #Pour chaque utilisateur supprimé
      foreach ($retuser in $UserSup)
      {
      Write-Host « user : $n = $retuser.UserPrincipalName »
      $n = $n + 1
      #On restaure l’utilisateur via MSonline
      Restore-MsolUser -UserPrincipalName $retuser.UserPrincipalName
      #On met son ImmutableID sur null afin que la synchro ne se fasse plus entre la version 365 et le local.
      # Afin d’éviter que ton user AAD soit copié dans le AD.
      # Tu verra d’ailleurs que dans ta console 365, ton utilisateur est passé d’une instance local (serveur) à cloud (nuage)
      Set-MSOLUser -UserPrincipalName $retuser.UserPrincipalName -ImmutableID « $null »
      }

      # On vérifie la suppression de l’ImmutableID
      foreach ($retuser in $UserSup)
      {
      Get-MsolUser -UserPrincipalName $retuser.UserPrincipalName | select ImmutableID
      }

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.