PI Services

Le blog des collaborateurs de PI Services

Exfolders , l’outil ultime pour vos dossiers publics

Pour ceux qui sont amenés à faire du troubleshooting sur les dossiers publics avec Exchange 2010.

Microsoft leur fournie un outil de troubleshooting assez complet nommé ExFolders.

Cet outil remplace PFDAVAdmin utilisé pour Exchange 2000/2003.

Nous savons que Les tâches d’administration peuvent être faites avec la console graphique ou les cmedlets Get-PublicFolder* , Set-PublicFolder*et add-PublicFolder* etc..

Pourquoi utiliser alors Exfolders ?

Exfolders offre aux administrateurs :

  • Une console d’administration complète à l’inverse de celle par défaut qui n’est pas très pratique pour une utilisation quotidienne.
  • Propager des ACE (Access Control Entry) sans écraser les ACL existantes
  • Réparer des DACL endommagées sur les publics folders dans le cas ou on a des erreurs sur la console Exchange , exemple ci-dessous.

clip_image002

  • Import & Export des permissions (utile lors d’une migration inter-forêt)
  • Import & Export de la liste des réplicas
  • Diagnostiquer les problèmes de publication Free/busy
  • Diagnostiquer des problèmes de génération OAB (dans le cas ou vous avez encore Outlook 2003).
  • Import & export des propriétés d’un dossier (ExchangeLegacyDN,PR_Replica_Server..)

Exemple ci-dessous: Export des propriétés d’un dossier

clip_image002[5]

clip_image004

 

clip_image006

  • La possibilité de se connecter à plusieurs bases de données : utilse dans le cas ou on compare deux bases de données publics.
  • Contrôler vos réplicas et les permissions :

clip_image002[7]

Cliquer sur Add

clip_image004[4]

Sélectionner le serveur replica et cliquer sur oK

clip_image006[12]

Cliquer Commit Changes pour valider le changement.

clip_image008

Gérer vos permissions !

L’outil est disponible en téléchargement à l’adresse suivante :

http://gallery.technet.microsoft.com/Exchange-2010-SP1-ExFolders-e6bfd405

La Team Exchange en parle : http://blogs.technet.com/b/exchange/archive/2009/12/04/3408943.aspx

Dossiers Publics : Comment Exchange 2010 attribue des Réplicas aux clients MAPI ?

Dans une infrastructure Exchange 2010 comportant encore des dossiers publics, il est judicieux de contrôler l’accès à ces dossiers et plus précisément le referral .

dans le cas ou vous perdez votre serveur dossiers publics, comment les utilisateurs sont redirigés vers un autre réplica et selon quel critère ?

 

Expliquons d’abord le terme Referral avant de renter dans les détails ;) ?

 

Quand un utilisateur accède à un dossier Public en utilisant un client MAPI comme Outlook , Exchange va déterminer quel réplica doit être utilisé par ce client .

Ce processus est appelé REFERRAL.

 

Comment fonctionne le REFERRAL ?

1. Le Client MAPI se connecte à la boites aux lettres de l’utilisateur et à la Public folder Database qui est affectée à la Mailbox Database hébergeant la boite aux lettres.

 

clip_image002

 

2. Le client MAPI tente de lire le contenu du dossier voulu par l’utilisateur , si le réplica est disponible , le processus est terminé.

3. Si le réplica n’est pas disponible ,par défaut Exchange retourne une liste de réplicas :

Le mécanisme par défaut pour déterminer le meilleur réplica se base sur les coûts des liens intersites (Sites & Services Active Directory\Inter-site Transports\IP)

· Il va commencer par rechercher en local s’il y a une Public Folder Database qui a le contenu demandé(replica).

· Sinon , une liste de serveurs d’autre site AD est construite trié par coût (de plus petit au plus grand)

Remarque : le Coût utilisé est le coût du lien Intersite entre le serveur Mailbox de l’utilisateur et le serveur Mailbox Cible contenant le réplica)

Cette liste est retournée au client Outlook , celui-ci tente de se connecter aux Réplicas en suivant le tri.si le premier ne fonctionne pas , il passe au deuxième , ainsi de suite jusqu’à qu’à ce que la connexion soit réussie.

Dans certain cas, par exemple :

· Quand La topologie de réplication AD ne correspond pas à la topologie physique du réseau.

· Quand l’entreprise filtre les flux MAPI entre les différents sites .

il est nécessaire de contrôler le Referral pour éviter que nos utilisateurs reçoivent des messages d’erreurs , ou aient un accès dégradé aux dossiers publics.

 

Comment contrôler le REFERRAL ?

 

On peut forcer Exchange à retourner un Referral spécifique en attribuant des coûts à des serveurs Exchange comportant des dossiers publics.

Il suffit de suivre la procédure ci-dessous :

clip_image002[6]

 

Aller sur la console Exchange Management Console (EMC)

\Organization Configuration\Mailbox \Database Management

Faire un clic droit sur la public folder Database, cliquer ensuite sur Properties.

 

clip_image004[4]

 

Cliquer sur l’onglet Public Folder Referral

Sélectionner ensuite Use Custom List et ajoutter les serveurs DP qui seront inclus dans le REFERRAL.

N’oublier pas d’attribuer des coûts à vos serveurs.

Les serveurs qui ont un coût supérieur à 500 ne seront pas utilisés par le REFERRAL.

Set-PublicFolderDatabase –Identity DBPUBLIC01 –UseCustomReferralServerList $True –CustomReferralReferralServerList "KBENZ-HCM2:1"

la commande en PowerShell !

 

 

Un autre exemple avec 3 serveurs Mailbox hébergeant des dossiers Publics :

clip_image002[8]

Si la Base Pub001 est en échec , Outlook utilisera en priorité le serveur 502 ensuite le 503.

Si la base Pub002 est en échec, Outlook utilisera en priorité le serveur 501 ensuite le 503.

Si Pub003 est en échec, Outlook utilisera en priorité le serveur 501 ensuite le 502.

 

Quelques informations complémentaires :

Microsoft Exchange 2010  - Understanding Public Folder Referrals :

http://technet.microsoft.com/en-us/library/bb691235.aspx

Managing Public folder :

http://technet.microsoft.com/en-us/library/cc788135(v=exchg.80).aspx

How public folder referrals have changed in Exchange 2007

http://blogs.technet.com/b/exchange/archive/2007/03/15/3401587.aspx

Exchange 2010 - RBAC: démarche et mise en place

La mise en place de la délégation RBAC pour Exchange 2010, peut être un casse-tête pour les consultants Exchange.

Plus il y a d’équipes qui vont gérer Exchange, plus votre tâche sera ardue.

Pour rappel, Exchange 2010 introduit un nouveau mécanisme de délégation appelé RBAC (Role Based Access Control).

Je vous invite à jeter un coup d’œil sur RBAC pour ceux qui ne connaissent pas : http://technet.microsoft.com/en-us/library/dd298183.aspx

La mise en place de la délégation passe par plusieurs étapes :

1. Créer une matrice avec les différentes équipes Exchange (Groupes AD)et les rôles de chacune

Exemple :

clip_image002

2. Pour chaque tâche de la matrice, essayer de déterminer s’il faut utiliser un Management role Existant ou créer un management rôle spécifique.

Exemple :

clip_image004

3. Déterminer ensuite les scopes à créer : un scope correspond soit à une OU , DATABASE ou Server.

Exemple :

clip_image006

4. Dernière étape : lier les 3 composants : Goupe AD , le Management Role et le scope.

Ce lien est le MRA : Management Role Assignment.

L’ensemble de ces étapes sont faites en ligne de commande Powershell.

Exemples de commandes :

Création d’un Management Role :

New-ManagementRole -Name "MR-RECIPIENTCREATIONN1" -Parent "Mail recipient Creation"

Get-ManagementRoleEntry "MR-RECIPIENTCREATIONN1\*" | where {$_.name -like "new*"} | Remove-ManagementRoleEntry

Get-ManagementRoleEntry "MR-RECIPIENTCREATIONN1\*" | where {$_.name -like "remove*"} | Remove-ManagementRoleEntry -confirm:$false

Création d’un Management Scope :

New-ManagementScope Scope-Germany -RecipientRoot "domaine.local/germany" -RecipientRestrictionFilter {(RecipientType -eq "UserMailbox") -or (RecipientType -eq "Mailcontact") -or (RecipientType -eq "MailUser") -or (RecipientType -eq "MailUniversalDistributionGroup") -or (RecipientType -eq "MailUniversalSecurityGroup") -or (RecipientType –eq "DynamicDistributionGroup") -or (RecipientType -eq "PublicFolder")}

Création du Role Assignment :

New-ManagementRoleAssignment -name "RA-EXCHANGE-GERMANY-MR-MAILRECIPIENTIT-SCOPE-GERMANY" –Role "MR-RECIPIENTCREATIONN1" -SecurityGroup "AD-Exchange-Germany" -CustomRecipientWriteScope "Scope-Germany"

5. Après avoir fait vos tests , il se peut que vous ailliez besoin de revoir une configuration d’un MRA (Management Role Assisgnment ) ou d’un MR (Management Role)

Vous avez plusieurs solutions:

  • les commandes PowerShell,
  • Exchange Control Panel (ECP).
  • RBAC  MANAGER

RBAC Manager

Une Console GUI pour RBAC est disponible en CodePlex, elle permet d’afficher, de créer et modifier des rôles Assignement, des Management rôles et des scopes en mode graphique.

Elle intègre aussi un Optath Builder qui va faciliter la création des scopes ou des MR(Management Role) très ciblés

Par exemple : toutes les boites aux lettres de l’OU Paris avec comme attribut « City » égale à « Paris » .

Cela facilitera la gestion des MRA,MR et scopes.

Exemple de Commande pour modifier une commande lié à un MR en mode commande.

Avec RBAC manager , cela revient à décocher les paramètres qui seront désactivés ;)

add-ManagementRoleEntry MR-MailrecipientIT\Set-mailbox -Parameters AcceptMessagesOnlyFromDLMembers, AcceptMe

ssagesOnlyFromSendersOrMembers, AddressBookPolicy, Alias, AntispamBypassEnabled, ApplyMandatoryProperties, Arbitration,

ArbitrationMailbox, ArchiveDomain, ArchiveName, ArchiveQuota, ArchiveStatus, ArchiveWarningQuota, BypassModerationFromSe

ndersOrMembers, CalendarRepairDisabled, CalendarVersionStoreDisabled, Confirm, CustomAttribute1, CustomAttribute10, Cust

omAttribute11, CustomAttribute12, CustomAttribute13, CustomAttribute14, CustomAttribute15, CustomAttribute2, CustomAttri

bute3, CustomAttribute4, CustomAttribute5, CustomAttribute6, CustomAttribute7, CustomAttribute8, CustomAttribute9, Debug

, DeliverToMailboxAndForward, DisplayName, DomainController, DowngradeHighPriorityMessagesEnabled, EmailAddresses, Email

AddressPolicyEnabled, EndDateForRetentionHold, ErrorAction, ErrorVariable, ExtensionCustomAttribute1, ExtensionCustomAtt

ribute2, ExtensionCustomAttribute3, ExtensionCustomAttribute4, ExtensionCustomAttribute5, ExternalOofOptions, Force, For

wardingAddress, ForwardingSmtpAddress, GrantSendOnBehalfTo, HiddenFromAddressListsEnabled, Identity, IgnoreDefaultScope,

ImmutableId, Languages, LinkedCredential, LinkedDomainController, LinkedMasterAccount, LitigationHoldDate, LitigationHo

ldEnabled, LitigationHoldOwner, MailTip, MailTipTranslations, ManagedFolderMailboxPolicy, ManagedFolderMailboxPolicyAllo

wed, MaxBlockedSenders, MaxReceiveSize, MaxSafeSenders, MaxSendSize, MessageTrackingReadStatusEnabled, ModeratedBy, Mode

rationEnabled, Name, Office, OfflineAddressBook, OutBuffer, OutVariable, PrimarySmtpAddress, RecipientLimits, Recoverabl

eItemsQuota, RecoverableItemsWarningQuota, RejectMessagesFrom, RejectMessagesFromDLMembers, RejectMessagesFromSendersOrM

embers, RemoteRecipientType, RemoveManagedFolderAndPolicy, RemovePicture, RemoveSpokenName, RequireSenderAuthenticationE

nabled, ResourceCapacity, ResourceCustom, RetainDeletedItemsFor, RetainDeletedItemsUntilBackup, RetentionComment, Retent

ionHoldEnabled, RetentionPolicy, RetentionUrl, RoleAssignmentPolicy, RulesQuota, SamAccountName, SCLDeleteEnabled, SCLDe

leteThreshold, SCLJunkEnabled, SCLJunkThreshold, SCLQuarantineEnabled, SCLQuarantineThreshold, SCLRejectEnabled, SCLReje

ctThreshold, SecondaryAddress, SendModerationNotifications, SharingPolicy, SimpleDisplayName, SingleItemRecoveryEnabled,

StartDateForRetentionHold, ThrottlingPolicy, Type, UseDatabaseQuotaDefaults, UseDatabaseRetentionDefaults, UserCertific

ate, UserPrincipalName, UserSMimeCertificate, Verbose, WarningAction, WarningVariable, WhatIf, WindowsEmailAddress

Quelques Captures de la console RBAC MANAGER

Role Assignements :

image

Management Role

clip_image004[5]

Opath Builder en béta , très utile pour les scopes.

clip_image006[5]

Quelques liens utiles :

Understanding RBAC : http://technet.microsoft.com/en-us/library/dd298183.aspx

RBAC Manager : http://rbac.codeplex.com/

Erreur avec Office Communicator : “n'a pas pu récupérer le calendrier ou les informations d'absence du bureau à partir des services Web Exchange” suite à une migration vers Exchange 2010

Suite au passage d’une infrastructure Exchange 2003 vers Exchange 2010, les utilisateurs d’Office Communicator 2007 et d’Outlook 2007 ou ultérieur dont la boite a été migrée vers la nouvelle infrastructure signalent un souci de remontée d’informations de présence ainsi que d’absence de bureau : lorsqu’ils ont une rendez-vous, une réunion ou un message OOF planifié dans leur calendrier Outlook, leur statut ne change pas automatiquement dans le client Communicator et leurs contacts ne sont donc pas prévenus de leur indisponibilité.

Par ailleurs, le client Communicator signale une erreur dans ses notifications (icone du point d’exclamation rouge sur dossier) et précise le message d’erreur   “Office Communicator n'a pas pu récupérer le calendrier ou les informations d'absence du bureau à partir des services Web Exchange” ("Communicator could not retrieve calendar or Out of Office information from Exchange Web Services") lorsque l’on clique sur la notification :

[image8.png]

[clip_image0013.png]

Si votre configuration EWS est vérifiée et que vous êtes certains de son exactitude, le problème provient alors probablement d’une version trop ancienne du client Communicator.

Microsoft a reconnu ce problème dans la KB 2172695 et a mis à disposition un hotfix qui couvre normalement ce problème, inclus dans le dernier pack de mises à jour disponible : http://support.microsoft.com/kb/2300255
(NB : il s’agit d’un hotfix pour le client Communicator, qui doit par conséquent être déployé sur tous les postes clients. La partie serveur Office Communication Server n’est pas concernée par ce correctif)

Pour mémoire, le processus de récupération des informations de présence par le client Communicator n’est pas instantané : il n’a lieu par défaut que toutes les 30min (à +/10min pour éviter que toutes les requêtes se fassent simultanément ce qui surchargerait les serveurs).  
Il est donc normal que le statut de présence ne soit pas mis à jour immédiatement après application du correctif ou lors de la création d’un rendez-vous “de test” dans Outlook!
Cependant, la notification d’erreur doit avoir disparu; et il est possible de forcer le rafraichissement du statut de présence en quittant puis relançant le client Communicator après la création d’un rendez-vous dans Outlook.

Identifier la version du client qui se connecte a une boite mail Exchange 2003

 

Bien que ce sujet puisse sembler dépassé, il peut en réalité encore servir aujourd’hui précisément dans le cadre d’une migration Exchange 2003 vers Exchange 2010 (par exemple pour ne migrer que les utilisateurs disposant d’une version d’Outlook supérieure ou égale à la 2007).

Il n’est pas possible de retrouver cette information directement à l’aide d’un cmdlet Powershell pré-existant, mais une requête WMI (classe Exchange_Logon du namespace root\MicrosoftExchangev2) exécutée via Powershell le permet :

Get-wmiobject -class Exchange_Logon -Namespace ROOT\MicrosoftExchangev2 -ComputerName ServerA -filter "LoggedOnUserAccount != 'NT AUTHORITY\\SYSTEM'" | select-object MailboxDisplayName,ClientVersion

La commande précédente permet donc de lister la version du client utilisée par chaque utilisateur pour se connecter.
On remarque qu’elle est nécessairement ciblée sur un serveur Exchange 2003 spécifique (-ComputerName ServerA).


Cependant, dans le cas où Exchange est configuré en cluster, il faut obligatoirement interroger le noeud actif pour obtenir cette information.
Il peut donc s’avérer utile de retrouver quel est le nœud actif d’un cluster à l’aide d’un script, encore une fois via WMI et Powershell (classe mscluster_nodetoactivegroup du namespace root\mscluster) puisque là non plus, Powershell ne permet pas nativement de retrouver cette information :

Get-WmiObject –ComputerName NomVirtuelduCluster –Namespace\root\mscluster –class mscluster_nodetoactivegroup  | select groupcomponent,partcomponent

image

Afin de ne conserver de ce résultat que la partie qui nous intéresse, à savoir le nom du noeud actif à proprement parler, on utilise la commande suivante :

$activenode = (( Get-WmiObject -ComputerName $myLegacyExchangeCluster -Namespace root\mscluster -Class mscluster_nodetoactivegroup -ErrorAction SilentlyContinue | Where-Object { $_.PartComponent -like "*Exchange Group*" } ).GroupComponent ).Split('"')[1]

Il ne reste alors plus qu’à réintégrer cette valeur à la première commande via le paramètre  –ComputerName $activenode afin d’obtenir un fonctionnement automatisé.

SCOM 2007 R2 : Les découvertes ne fonctionnent pas et une erreur “Workflow Initialization Failed to start a workflow that runs a process or script” revient en boucle

Lors du déploiement d’un management pack dont les découvertes sont basées sur des scripts locaux (par exemple Exchange 2010) dans SCOM 2007 R2 dans un environnement où les serveurs sont protégés par McAfee VirusScan Enterprise, les services concernés ne sont pas découverts et leur état n’apparait donc pas dans l’écran Supervision de SCOM.

En parallèle, des processus cscript.exe tournent sans fin sur les serveurs concernés et des alertes « Workflow Initialization Failed to start a workflow that runs a process or script » remontent dans SCOM :

clip_image002_thumb2

Des erreurs cscript.exe sont également enregistrées dans l’Application Event Log de Windows sur les serveurs où se trouvent les services et applications qui devraient être découverts :

Event ID 1000
Faulting application name: cscript.exe. version: 5.8.7600.16385. time stamp:
0x4a5bc670 Faulting module name: ScriptSn.20110218083735.dll_unloaded.
version: 0.0.0.0. time stamp: 0x4d2ce466
Exception code: 0xc0000005 Fault offset: 0x6ff7466a Faulting process id:
0xbdc Faulting application start time: 0xcscript.exe0 Faulting application
path: cscript.exe1 Faulting module path: cscript.exe2 Report Id: cscript.exe3

Ce probl��me est lié au module ScriptScan de McAfee VSE en version 8.8 qui se comporte de façon assez inattendue : lorsqu’il est désactivé, il empêche malgré tout l’exécution des scripts (dont ceux nécessaires à la détection des composants que SCOM cherche à monitorer) et ce même si les exclusions adéquates sont positionnées.

Trois solutions sont alors disponibles :

  • Activer le module ScriptScan
  • Complètement désinstaller la fonctionnalité ScriptScan en désenregsitrant la dll SCRIPTSN.dll sur chaque serveur :
    cd "C:\Program Files\Common Files\McAfee\SystemCore"
    regsvr32.exe /u SCRIPTSN.dll
  • Déployer la version 8.8 patch 1 mise à disposition par McAfee.

C’est bien entendu cette dernière solution qu’il faudra privilégier. Pour plus de détails sur ce blocage, McAfee a également publié une KB à ce sujet : https://kc.mcafee.com/corporate/index?page=content&id=KB71660

EXCHANGE 2010 – Session Telnet

Avec certains système de messagerie nous pouvons envoyer un

message en utilisant une session “telnet” avec la syntaxe suivante:

220 monserveur.fr Microsoft ESMTP MAIL Service ready at Wed, 9 May
helo
250 monserveur.fr Hello [10.10.10.10]
mail from: john@track.ru
250 2.1.0 Sender OK
rcpt to: p.fedan@mondomaine.fr
250 2.1.5 Recipient OK
data
354 Start mail input; end with <CRLF>.<CRLF>
subject: Test email using telnet
Ceci est un test.
.
250 2.6.0 7b45f718-0d0c-42fd-b2f4-dd3607bb334b@monserveur.fr

On remarque qu’avec Exchange 2010 le destinataire et le corps du

message sont vides !

image

La syntaxe utilisée doit être la suivante:

220 monserveur.fr Microsoft ESMTP MAIL Service ready at Wed, 9 May
helo
250 monserveur.fr Hello [10.10.10.10]
mail from: john@track.ru
250 2.1.0 Sender OK
rcpt to: p.fedan@mondomaine.fr
250 2.1.5 Recipient OK
data
354 Start mail input; end with <CRLF>.<CRLF>
to: p.fedan@mondomaine.fr         ######## Ajouter le champ “to”
Subject: test 2 email using telnet   ####### Insérer un saut de ligne

Ceci est un test.

.
250 2.6.0 <6a990d2b-9118-4e5c-8c4d-a7b70b382813@monserveur.fr

L’expéditeur et le corps du message seront présent:

image