Ah, la fameuse Liste d’Adresses Globale (GAL) d’Office 365… Tu sais, cette liste interminable où tous les utilisateurs de ton organisation s’affichent fièrement, même ceux que tu préférerais planquer dans un placard virtuel ?
Si tu gères un environnement hybride avec Active Directory local et Office 365, tu as sûrement déjà pesté contre l’absence de l’attribut msExchHideFromAddressLists dans ton AD. Heureusement, il existe une solution élégante qui évite de foutre en l’air ton schéma Active Directory.
Spoiler : On va bidouiller Azure AD Connect avec style, sans tout casser.
Table des matières
Open Table des matières
Le problème qui fait mal aux cheveux
Dans un monde parfait, masquer un utilisateur de la GAL c’est simple comme bonjour quand tu as un compte cloud :
# La méthode de feignant pour les comptes cloud
Set-Mailbox -Identity user@domain.com -HiddenFromAddressListsEnabled $true
IIF(IsPresent([msDS-cloudExtensionAttribute1]),IIF([msDS-cloudExtensionAttribute1]=“HideFromGAL”,True,False),NULL)
🔍 Explication de la formule
Cette expression dit : « Si l’attribut msDS-cloudExtensionAttribute1 est présent ET égal à HideFromGAL, alors retourne True, sinon False. S’il n’est pas présent, retourne NULL. »
Étape 3 : Synchronisation initiale
Maintenant qu’on a tout configuré, on lance la synchronisation pour appliquer notre nouvelle règle.
Ouvre PowerShell en tant qu’administrateur sur ton serveur Azure AD Connect :
Start-ADSyncSyncCycle -PolicyType Initial
Script pour masquer plusieurs utilisateurs de la GAL
À exécuter sur un contrôleur de domaine
$UsersToHide = @( “user1@domain.com”, “user2@domain.com”, “serviceaccount@domain.com” )
foreach ($User in $UsersToHide) { try { $ADUser = Get-ADUser -Filter “UserPrincipalName -eq ‘$User’” -Properties msDS-cloudExtensionAttribute1
if ($ADUser) {
Set-ADUser $ADUser -Replace @{'msDS-cloudExtensionAttribute1'='HideFromGAL'}
Write-Host "✅ $User configuré pour être masqué de la GAL" -ForegroundColor Green
} else {
Write-Host "❌ Utilisateur $User introuvable" -ForegroundColor Red
}
}
catch {
Write-Host "❌ Erreur avec $User : $($_.Exception.Message)" -ForegroundColor Red
}
}
Write-Host “`n🔄 N’oublie pas de lancer une synchronisation Delta !” -ForegroundColor Yellow
🔧 Pour lancer une sync Delta à distance :
# Depuis un autre serveur (remplace SERVEUR-AZUREAD par ton serveur AD Connect)
Invoke-Command -ComputerName "SERVEUR-AZUREAD" -ScriptBlock {
Start-ADSyncSyncCycle -PolicyType Delta
}