L’outil Azure AD Connect sert à synchroniser les comptes d’un Active Directory local vers un tenant Office 365, et il est configuré pour se synchroniser à intervalle régulier. Par défaut, toutes les 30 minutes. Si vous avez besoin de réaliser une synchronisation en urgence pour appliquer des modifications sans attendre le prochain cycle, il est possible de forcer la synchronisation AAD en PowerShell.
Source : https://www.it-connect.fr/azure-ad-connect-comment-forcer-la-synchronisation/
Avant de commencer, vous devez installer le module Az.Accounts sur votre machine afin de pouvoir utiliser Connect-AzAccount :
Install-Module -Name Az.Accounts
Se connecter avec la méthode interactive
Nous allons commencer par la méthode interactive, qui consiste à s’authentifier manuellement dans un navigateur. Pour utiliser cette méthode, il suffit d’exécuter la commande sans paramètre :
Connect-AzAccount
Le navigateur par défaut défini sur votre machine va s’ouvrir afin de vous demander de vous authentifier sur Microsoft Azure. Il vous suffit de sélectionner un compte dans la liste ou de saisir votre adresse e-mail, puis d’indiquer le mot de passe correspondant.
Ensuite, une page blanche va s’afficher avec ce message :
Authentication complete. You can return to the application. Feel free to close this browser tab.
Vous n’avez plus qu’à fermer la fenêtre ! La connexion est établie !
Se connecter avec les identifiants
Pour se connecter automatiquement à l’aide d’un script, ou utiliser une méthode plus habituelle, on peut s’appuyer sur l’utilisation d’identifiants via un objet PSCredential. Pour cela, on va stocker les identifiants dans une variable, par exemple $CredsAz et les utiliser au moment d’appeler Connect-AzAccount.
Pour obtenir les identifiants, il y a plusieurs façons de faire, notamment la manière interactive avec Get-Credential.
Ce qui donne :
$CredsAz = Get-Credential
Connect-AzAccount -Credential $CredsAz
Là encore, cette opération fonctionne très bien avec un compte Microsoft professionnel, rattaché à Office 365, par exemple.
Par contre, avec un compte Microsoft personnel, c’est pénible mais la connexion n’est pas possible de cette façon. La console retourne l’erreur « Connect-AzAccount: UsernamePasswordCredential authentication failed: ROPC does not support MSA accounts.« . Personnellement, je n’ai pas trouvé de solution.
Cycle de la synchronisation
Pour rappel, les commandes PowerShell liée à Azure AD Connect sont intégrées dans le module « ADSync ». La commande suivante permet de visualiser l’intervalle de synchronisation configuré, mais aussi de voir quand aura lieu la prochaine synchronisation.
Get-ADSyncScheduler
Ce qui donne :
AllowedSyncCycleInterval : 00:30:00
CurrentlyEffectiveSyncCycleInterval : 00:30:00
CustomizedSyncCycleInterval :
NextSyncCyclePolicyType : Delta
NextSyncCycleStartTimeInUTC : 02/04/2020 19:29:28
PurgeRunHistoryInterval : 7.00:00:00
SyncCycleEnabled : True
MaintenanceEnabled : True
StagingModeEnabled : False
SchedulerSuspended : False
SyncCycleInProgress : False
Le paramètre « CustomizedSyncCycleInterval » n’est pas configuré par défaut, et il sert à définir un cycle de synchronisation personnalisé si vous le souhaitez. La commande ci-dessous permettra de réaliser cette opération pour passer sur un cycle à 15 minutes :
Set-ADSyncScheduler -CustomizedSyncCycleInterval 00:15:00
Passons maintenant à la suite : comment forcer la synchronisation AAD.
Forcer la synchronisation AAD
Pour forcer la synchronisation suite à la modification d’un utilisateur par exemple, ou l’ajout dans un nouveau groupe, voire même la création d’un nouvel utilisateur ou d’un nouveau groupe de diffusion, nous parlerons de synchronisation delta.
Cette opération s’effectue via la commande Start-ADSyncSyncCycle que l’on va utiliser de cette façon :
Start-ADSyncSyncCycle -PolicyType Delta
Vous devriez obtenir le résultat suivant :
Result
-----
Success
Maintenant, si vous modifiez la configuration de l’outil Azure AD Connect en lui-même, par exemple au niveau d’une règle ou d’un filtre, il est nécessaire de réaliser une synchronisation complète.
Dans le même esprit que pour la synchronisation précédente, vous devez utiliser cette fois-ci :
Start-ADSyncSyncCycle -PolicyType Initial