Skip to content

Masquer des utilisateurs de la GAL Office 365 + Active Directory : Guide complet

Brandon Visca
Published date:

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
}
Previous
Arc Browser abandonné : 7 alternatives épurées pour retrouver ton workflow de rêve
Next
DNS Scavenging Windows Server : automatiser le nettoyage DNS