Office Servers and Services

"La connaissance ne vaut que si elle est partagée" / "An effective Knowledge is a shared one"

Exchange 2010 SP2 – GAL Segmentation (ABP) – Implementation

Posted by Anthony Costeseque sur décembre 7, 2011


Suite au billet de David voyons comment mettre tout cela en place !

La première étape va consister à diviser votre organisation (virtuelle)

Pour cela vous avez un certain nombre d’options à votre disposition, qui consiste à :

  1. Créer des OU dans votre AD pour séparer les utilisateurs


Ici sous utilisateurs j’ai créé des OU par société

  1. Personnaliser les attributs LDAP d’un objet « mail enabled »

En règle générale nous utiliserons les attributs de l’onglet organisation d’un objet mail enabled : Société, Département ou encore Region.


Ou encore les attributs personnalisés (vous en avez 15 pour faire ce que vous voulez !)


(Onglet General > Attributs personnalisés)

Maintenant comment mettre cela en place rapidement ?

2 méthodes :

Si vous avez une faible population de personnes vous pouvez mettre à jours les attributs à la main.

Si vous avez un nombre d’utilisateurs important, ou que vous aimez gagner du temps ! PowerShell est là :) il faudra sélectionner les bon utilisateurs (grâce aux OU) puis mettre à jour les attributs

Get-Mailbox -OrganizationalUnit ‘NomDeLOU’ | Set-User -Company ‘CeQueVousVoulez’

Get-Mailbox -OrganizationalUnit ‘NomDeLOU’ | Set-User -Department ‘CeQueVousVoulez’

Simple non ?🙂 Ici nous avons pris tous les objets mail enabled de l’OU NomDeLOU et nous avons changé l’attribut Société (company) ou encore le Service (department) avec le nom de la société que vous voulez

Petite différence pour les attributs personnalisés nous utiliserons Set-Mailbox (avec CustomAttributeX ou X est compris entre 1 et 15)

Get-Mailbox -OrganizationalUnit ‘NomDeLOU’ | Set-Mailbox -CustomAttribute1 ‘CeQueVousVoulez’

Il vous reste à répéter le process pour toutes les sociétés que vous voulez mettre en place.

Maintenant nous avons un attribut ou des attributs nous permettant de filtrer nos utilisateurs.

La deuxième étape va consister à créer les AL (Address List), les GAL (Global Address List) et les OAB (Offline Address Book)

Ici il est recommandé d’utiliser des vrai filtres LDAP donc PowerShell uniquement pas de EMC (la console) possible :p (l’exemple est sur une installation française, il faudra adapter « -Container » en fonction de votre langue d’installation)

On commence par les AL Classique, nous allons créer :

1 AL pour tous les Utilisateurs et les Listes de distribution

New-AddressList -Name « AL_Societe1_Users_DGs » -RecipientFilter {(((RecipientType -eq ‘UserMailbox’) -or (((RecipientType -eq ‘MailUniversalDistributionGroup’) -or (RecipientType -eq ‘MailUniversalSecurityGroup’) -or (RecipientType -eq ‘MailNonUniversalGroup’) -or (RecipientType -eq ‘DynamicDistributionGroup’))))) -and (Company -eq ‘Societe1’)} -Container ‘\Tous les utilisateurs’ -DisplayName ‘Tous les utilisateus Societe1’

Update-AddressList ‘AL_Societe1_Users_DGs’

1 AL pour les contacts

New-AddressList -Name « AL_Societe1_Contacts » -RecipientFilter {((RecipientType -eq ‘MailContact’) -and (Company -eq ‘Societe1’))} -Container ‘\Tous les contacts’ -DisplayName ‘Tous les contacts Societe1’

Update-AddressList ‘AL_Societe1_Contacts’

1 AL pour les salles (mailbox de type ressource) obligatoire si vous n’en avez pas il faudra en créer une blank !

Pour la version vide

New-AddressList -Name AL_BlankRoom -RecipientFilter {((Alias -ne $null) -and ((RecipientDisplayType -eq ‘ConferenceRoomMailbox’) -or (RecipientDisplayType -eq ‘SyncedConferenceRoomMailbox’)))} -Container ‘\Toutes les salles’ -DisplayName ‘Toutes les salles Societe1’

Update-AddressList ‘AL_BlankRoom’

Pour la version non vide

New-AddressList -Name « AL_Societe1_Rooms » -RecipientFilter {(Alias -ne $null) -and (Company -eq ‘Societe1’) -and (RecipientDisplayType -eq ‘ConferenceRoomMailbox’) -or (RecipientDisplayType -eq ‘SyncedConferenceRoomMailbox’)} -Container ‘\Toutes les salles’ -DisplayName ‘Toutes les salles Societe1’

Update-AddressList ‘AL_Societe1_Rooms’

1 GAL

New-GlobalAddressList -Name « Global Address List Societe1 » -RecipientFilter {(Company -eq ‘Societe1’)}     

1 OAB

New-OfflineAddressBook -Name « OAB_Societe1 » -AddressLists « Global Address List Societe1 »

Il vous reste à répéter le process pour toutes les sociétés que vous voulez mettre en place.

La troisième étape va consister à créer les ABP (Address Book Policies)

Pour la version sans room

New-AddressBookPolicy -Name « ABP_Societe1 » -AddressLists « AL_Societe1_Users_DGs », »AL_Societe1_Contacts » -OfflineAddressBook « \OAB_Societe1 » -GlobalAddressList « \Global Address List Societe1 » -RoomList « \Toutes les salles\AL_BlankRoom »

Pour la version avec room

New-AddressBookPolicy -Name « ABP_Societe1 » -AddressLists « AL_Societe1_Users_DGs », »AL_Societe1_Contacts » -OfflineAddressBook « \OAB_Societe1 » -GlobalAddressList « \Global Address List Societe1 » -RoomList « \Toutes les salles\AL_Societe1_Rooms »

Il vous reste à répéter le process pour toutes les sociétés que vous voulez mettre en place.

Et la quatrième et dernière étape va consister a appliquer la policy aux utilisateurs

Get-Mailbox -OrganizationalUnit ‘NomDeLOU’ | Set-Mailbox -AddressBookPolicy « ABP_Societe1 »

Il vous reste à répéter le process pour toutes les sociétés que vous voulez mettre en place.

Pour verifier :

Get-Mailbox -OrganizationalUnit ‘NomDeLOU’ | fl Name,AddressBookPolicy

Il faudra ensuite fermer le client de l’utilisateur s’il est en train d’utiliser Outlook !

TRES IMPORTANT : Cela ne fonctionne pas si votre serveur exchange fait aussi DC et sur tout Global Catalogue car à ce moment-là c’est Name Service Provider Interface (NSPI) et non Microsoft Exchange Address Book service qui est utilisé pour les recherches ! (NSPI passe au-dessus des ABP)

EDIT (09/12/11) : suite au message de Julien Ohayon qui m’a remonté un problème de typo due à la réinterprétation du code par WordPress du code PowerShell je vous joint une capture d’écran et un fichier txt avec les commandes.



Le fichier texte

https://skydrive.live.com/redir.aspx?cid=2baad2dff0402075&resid=2BAAD2DFF0402075!1024&parid=2BAAD2DFF0402075!114

Pour toutes questions n’hésitez pas.

Anthony COSTESEQUE

14 Réponses to “Exchange 2010 SP2 – GAL Segmentation (ABP) – Implementation”

  1. Bonjour,

    Etes vous sur que celà est pour la version Française d’Exchange ? car aucune des commandes ne fonctionne… Ex : Invoke-Command : Impossible de lier le paramètre « RecipientFilter » à la cible. Exception lors de la définition de « RecipientFilter » : « Syntaxe de filtre non valide. Pour obtenir une description de la syntaxe du paramètre de filtre, consultez l’aide de la commande.« (((RecipientType -eq ‘UserMailbox’) -or (((RecipientType -eq ‘MailUniversalDistributionGroup’) -or (RecipientType -eq ‘MailUniversalSecurityGroup’) -or (RecipientType -eq ‘MailNonUniversalGroup’) -or (RecipientType -eq ‘DynamicDistributionGroup’))))) -and (Company -eq ‘XXXXX’) » en position 22. »

    Pourtant mon utilisateur a bien le nom de l’entreprise dans le champs : « Société »

  2. Anthony Costeseque said

    Bonjour,
    Ce sont bien toutes les commandes que j’ai utilisé pour mettre en place la solution sur mon infrastructure qui est en Exchange 2010 SP2 Français.
    Par contre je me rends compte que les commandes que j’ai mis on été en partie interprétées par le moteur de mise en force de WordPress … sur les ‘ qui deviennent un ’ !!
    Je vais éditer mon billet et ajouter un capture d’écran des commandes.
    Merci d’avoir soulevé le problème !🙂

  3. Bonsoir Anthony,

    Ca fonctionne parfaitement maintenant.
    Merci (j’aurais du remarquer…)

    Julien

  4. Bonjour,

    Je viens d’essayer de mettre en place cette solution, mais cela ne fonctionne que avec OWA.
    Lorque les clients se connecte avec Outlook cela ne fonctionne plus.
    Quelqu’un aurait’il une idée ?

    Merci d’avance

    • Anthony Costeseque said

      Bonjour,
      Si le client Outlook n’a pas été redémarré depuis la mise en place de l’ABP c’est normal il faut fermer et relancer Outlook pour que les clients prennent en compte le changement.
      Il faut le temps qu’Outlook prenne en compte le changement, que l’OAB (Offline Address Book) soit mis à jour sur le poste local.
      Utilisez vous Outlook en mode mise en cache ? ou pas ?
      Avez vous essayé sur une configuration vierge, de monter un compte de test dans Outlook ? utilisez vous Outlook 2007 ou 2010 ?
      Avez vous essayé de forcer le téléchargement de l’OAB dans Outlook ?
      Cordialement,
      Anthony

      • Bonjour Anthony,

        Désolé je n’est pas vu votre post.
        Le client Outlook a été réinitialisé.nous utilisons le mode cache mais j’ai essayé sans.
        J’ai egalement essayé avec une nouvelle config.
        Le client utilisé est Outlook 2007.
        Je n’est pas essayé de forcer le OAB. je ne sais pas comment faire.
        Je suis un peut perdu je ne sais pas ou chercher.
        Merci de votre aide

  5. Ce qu’il se passe exactement c’est que je voie quand je fait nouveau mail dans le champ A, toutes les sociétés ainsi que tout les utilisateurs présent dans la liste global d’adresse.

    • Anthony Costeseque said

      Bonjour,
      Votre serveur Exchange n’est pas installé sur un contrôleur de domaine ?
      Si oui alors c’est normal il ne faut pas que le serveur soit catalogue global car cela bypass le Microsoft Exchange Address Book service !
      Anthony

      • Bonjour Anthony,

        Merci pour moi ça fonctionne super.
        En revanche est t’il possible de créer des listes de distribution tout en préservant la segmentation?
        Merci d’avance

      • Anthony Costeseque said

        Bonjour,
        C’est une excellente question🙂
        Oui cela est possible, il suffit de créer un Liste de distribution comme on le ferait habituellement mais comme spécifié dans l’étape 1 d’utiliser un attribut de personnalisation comme vous l’avez constaté il n’y a pas d’attribut company ou departement etc, seul les « Custom Attributes » sont disponibles !
        Voici un exemple pour l’Address List (AL) associée (une fois le custom attribute ajouté (ici le 1))
        New-AddressList -Name « AL_Societe1_DGs » -RecipientFilter {(((((RecipientType -eq ‘MailUniversalDistributionGroup’) -or (RecipientType -eq ‘MailUniversalSecurityGroup’) -or (RecipientType -eq ‘MailNonUniversalGroup’) -or (RecipientType -eq ‘DynamicDistributionGroup’))))) -and (CustomAttribute1 -eq ‘Societe1’)} -Container ‘\Tous les utilisateurs’ -DisplayName ‘Tous les groupes de distribution Societe1’
        Il faudra l’ajouter à votre ABP.
        Anthony

  6. Bonjour Anthony,
    Tu confirmes que l’application de l’ABP doit être refaite à chaque utilisateur créé après la suite d’opérations décrites dans ton post ?

    • Anthony Costeseque said

      Bonjour Laurent,
      Tout a fait il faut appliquer la bonne Policy une fois l’utilisateur crée.
      Set-Mailbox « MBXname » -AddressBookPolicy « PolicyName »
      Anthony

  7. gwit2013 said

    Bonjour,

    Peut-être pourriez vous m’aider …
    Est-il possible de créer un GAL à partir d’un attribut de personnalisation, mais qui pourrait prendre plusieurs valeurs ?
    En gros, est il possible de créer un GAL avec une commande de la sorte :
    New-GlobalAddressList -Name « Nom du GAL » – RecipientFilter {(CustomAttribute15 -eq « Société1 »)} -or (RecipientFilter (CustomAttribute15 -eq « Société2 »))

    En effet, j’ai 7 sociétés, avec des règles de visibilité particulières entre elles. Et la mise en place d’ABP ne suffit pas, Outlook et OWA ne nous affichent que les contacts du GAL… Microsoft enquête mais cela commence à prendre beaucoup trop de temps

  8. Bonjour,

    Un grand merci pour ce tuto super facile à mettre en œuvre !

    Pour info, config montée sur un PDC 2008 R2 SP1 + Exchange 2010 SP3 + toutes updates et parfaitement fonctionnel🙂
    Donc je vous confirme que cette solution est tout à fait possible sur un unique serveur contrôleur de domaine hébergeant l’Exchange (même si c’est absolument pas recommandé je vous l’accorde)

    Alan

Laisser un commentaire

Choisissez une méthode de connexion pour poster votre commentaire:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

 
%d blogueurs aiment cette page :