PI Services

Le blog des collaborateurs de PI Services

Exchange 2013_Impossible de supprimer l'autorisation Envoyer en tant / Accès total

Symptômes:

Lorsque vous essayez de supprimer l'autorisation « Accès total » ou « Envoyer en tant que »  sur une boite aux lettres, vous pouvez être confronté aux messages d’avertissements indiquant que l’entrée de contrôle d’accès ne peut pas être supprimée.

Ce problème apparaîtra quand vous essayez de supprimer l'autorisation à l'aide du PowerShell Exchange ou depuis l'interface graphique.

  •  A la suppression de l’autorisation « Envoyer en tant que» via la console d’administration ECP, vous aurez  le message d’avertissement ci-dessous :
  • Quand vous supprimez l’autorisation « Accès total» , pas de message d’avertissement , mais la délégation n’est pas supprimée.
  • A la suppression de l’autorisation « Full Access/ send as » depuis une BAL en powershell,  vous aurez les messages d’avertissement suivants :

Solution:

Les étapes suivantes s'appliquent pour les boites aux lettres liées. La solution de contournement consiste à déconnecter la BAL de l'utilisateur, modifier les autorisations puis la reconnecter :

Exemple : Supprimer l’autorisation de User01 sur la BAL de User02:

  • Exécutez la commande suivante: Set-User -Identity useridentity -LinkedMasterAccount $null Cette commande permet de dissocier la boîte aux lettres liée et la convertir en boîte aux lettres utilisateur.

    Le paramètre Identity spécifie l'utilisateur que vous souhaitez modifier. Vous pouvez utiliser n'importe quelle valeur qui identifie l'utilisateur de manière unique. Par exemple:

    • Name
    • Distinguished name (DN)
    • Canonical DN
    • GUID
    • UserPrincipalName
  • Supprimez par la suite les autorisations en exécutant les commandes suivantes :

    Pour supprimer la délégation Full Access  Remove-MailboxPermission -Identity MailboxAccount -User UserAccount -AccessRights FullAccess -InheritanceType All

    Exemple:  Remove-MailboxPermission -Identity "user02" -User "User01" -AccessRights FullAccess -InheritanceType All

    Pour supprimer la délégation Send As  Remove-ADPermission -Identity "MailboxAccount" -User "UserAccount" -ExtendedRights "Send As"

    Exemple: Remove-ADPermission -Identity " User02" -User " User01" -ExtendedRights "Send As"

  • Une fois les délégations supprimées, reconnectez de nouveau la boite aux lettres de l’utilisateur via la commande :

    Set-User -Identity “UserAccount” – LinkedDomainController “domaincontroller” -LinkedMasterAccount “DomainName\user

    Exemple:  Set-User -Identity User01@contoso.com – LinkedDomainController dc01.contoso.com -LinkedMasterAccount “contoso\User01”

  • Vérifier par la suite que les autorisations ont été bien supprimées.

Exchange 2013/2016_Le groupe de distribution dynamique renvoie tous les utilisateurs avec le filtre "RecipientContainer"

Lorsque vous créez un groupe de distribution dynamique dans Exchange 2016/2013 avec le filtre "RecipientContainer", l'onglet Aperçu n'existe plus, il fallait donc passer par Exchange Powershell pour afficher les membres du groupe.

Pour afficher l'appartenance au groupe de distribution dynamique, la commande Exchange PowerShell est simple et rapide:

Get-Recipient -RecipientPreviewFilter (Get-DynamicDistributionGroup "DynamicGroupName").RecipientFilter

Malheureusement, comme votre groupe de distribution utilise le paramètre "RecipientContainer", la commande ci-dessus ne fonctionnera pas correctement et affichera tous les destinataires quel que soit leurs unités organisationnelles.

Pour contourner le problème, utilisez plutôt les commandes suivantes:

  1. Créez tout d'abord une variable qui stockera les résultats de la commande:
    $DDL = Get-DynamicDistributionGroup "DynamicGroupName
  2. Utilisez la variable avec la commande Get-Recipient pour renvoyer les résultats requis : Get-DynamicDistributionGroup $DDL | ForEach {Get-Recipient -RecipientPreviewFilter $_.RecipientFilter -OrganizationalUnit $_.RecipientContainer} | Select DisplayName,PrimarySMTPAddress,OrganizationalUnit | Sort-Object -Property DisplayName

 

Exchange/Outlook_Problème de réception des invitations des RDV après la suppression d’un délégué de calendrier

 

Description du problème :

Lorsqu’un utilisateur 1 n'a plus besoin d'accéder au calendrier d’un autre utilisateur 2, la délégation peut être supprimée via le client Outlook ou par un administrateur Exchange en utilisant le PowerShell.

Après la suppression des droits de délégation, tout accès au calendrier est révoqué et les invitations aux réunions ne sont plus envoyées au délégué pour qu'il les accepte ou les refuse. Il est possible que même après la suppression des délégations, l'utilisateur 1 continue à recevoir des demandes de réunions envoyées à l’utilisateur 2.

 Diagnostic et résolution :

  • Vérifier si les droits délégués ont été correctement supprimés en exécutant la commande suivante: 

Get-MailboxFolderPermission -Identity UserEmailaddress:\Calendar  Si vous voyez encore l’ancien délégué, supprimez ses droits à l'aide de la commande: Remove-MailboxFolderPermission -Identity DelegatorUserEmailaddress:\Calendar -User UserEmailaddressdelegate

  • Vérifier s’il y a des règles de boîte de réception masquées : Si le droit de voir les éléments privés a été affecté au délégué, une règle de boîte de réception masquée sera créée au niveau de la boîte aux lettres du délégué. Lorsque ce dernier est supprimé du calendrier, il doit automatiquement supprimer la règle masquée depuis sa Boite aux lettres.

Les règles de boîte de réception masquées ne sont pas visibles pour l'utilisateur dans Outlook. Seul un administrateur Exchange peut les chercher et les supprimer. Rechercher la règle de boîte de réception masquée via la commande :

Get-InboxRule -Mailbox  “DelegatorUserEmailaddress” -IncludeHidden avec le paramètre Mailbox identifiant le délégant et non le délégué. 

Ci-dessous un exemple du résultat de la commande précédente pour une boîte aux lettres avec une règle de boîte de réception de délégué masquée :

Pour en savoir plus sur ce que fait cette règle, développez la commande précédente avec l'ajout du paramètre Identity. Notez que le paramètre identité n'est pas le nom de la règle mais plutôt la valeur de RuleIdentity 

Vous pouvez supprimer cette règle avec la cmdlet "Remove-InboxRule" : Get-InboxRule -Mailbox EmailAddress -IncludeHidden -Identity  XXXXXXXXXXXXX | Remove-InboxRule

Confirmer la suppression de la règle en réémettant la commande initiale :

Get-InboxRule -Mailbox EmailAddress -IncludeHidden

La suppression de la règle du transfert au délégué devrait résoudre le problème.

Sinon, vérifiez si le transfert de boîte aux lettres est configuré via une redirection: Get-Mailbox -Identity “DelegatorUserEmailaddress”  | Format-List Name,ForwardingSmtpAddress,ForwardingAddress Si un transfert de boîte aux lettres est présent, les valeurs seront renvoyées dans les champs ForwardingSmtpAddress et ForwardingAddress. Si ces champs sont vides, le transfert de boîte aux lettres n'est pas en place.

Pour supprimer la configuration du transfert depuis une BAL, exécutez la commande suivante:Set-Mailbox -Identity “DelegatorUserEmailaddress”  -ForwardingSmtpAddress $null -ForwardingAddress $null -DeliverToMailboxAndForward $false

Il est aussi possible que le transfert soit en place avec une règle standard au niveau de la boîte de réception de l’utilisateur. Pour cela, vérifiez si les règles de la boîte de réception incluent une action de transfert ou de redirection.

 

 

Office365/Exchange 2013/2016_Installation et configuration de l'agent des stratégies de routage du carnet d'adresses

Problématique:

Si vous avez plusieurs GAL dans l'environnement de messagerie séparées à l'aide de politiques de carnet d'adresses, un utilisateur de la GAL1 peut afficher les informations de contact de l'utilisateur GAL2. Pour éviter ça, vous pouvez activer l'agent de routage ABP.

Le routage des stratégies de carnet d’adresses contrôle la façon dont les destinataires sont résolus dans les organisations utilisant des stratégies de carnet d’adresses. Lorsque l'agent de routage ABP (Address Book Policy) est installé et configuré, les utilisateurs affectés à différentes listes d’adresses globales (GAL) apparaissent en tant que destinataires externes.

Pour Installer l'agent de routage des stratégies de carnet d'adresses :

  1. Exécuter la commande suivante dans un environnement Exchange powershell :

Install-TransportAgent -Name "ABP Routing Agent" -TransportAgentFactory "Microsoft.Exchange.Transport.Agent.AddressBookPolicyRoutingAgent.AddressBookPolicyRoutingAgentFactory" -AssemblyPath $env:ExchangeInstallPath\TransportRoles\agents\AddressBookPolicyRoutingAgent\Microsoft.Exchange.Transport.Agent.AddressBookPolicyRoutingAgent.dll

Ignorer pour le moment le message d’avertissement indiquant que le service de transport doit être redémarré pour que vos modifications soient appliquées et passer à l'étape 2 de manière à ne redémarrer le service de transport qu'une seule fois.

  1. Activer l’agent en exécutant la commande suivante :

Enable-TransportAgent "ABP Routing Agent"

  1. Redémarrer le service de transport en exécutant la commande suivante :

Restart-Service MSExchangeTransport

  1. Après le redémarrage du service, vérifier que l'agent de routage des stratégies de carnet d'adresses est installé et activé en exécutant la cmdlet suivante :

Get-TransportAgent

Si l’agent de routage de carnet d’adresses est répertorié, donc il a été correctement installé.

  1. Activer par la suite le routage des stratégies de carnet d'adresses pour l'organisation en exécutant la commande suivante :

Set-TransportConfig -AddressBookPolicyRoutingEnabled $true

Désormais, les autres utilisateurs de la liste d’adresses globale GAL1 ne peuvent plus afficher les autres utilisateurs de la liste d’adresses globale GAL2

Exchange Onprem_Déterminer le nombre d'utilisateurs utilisant réellement POP et IMAP

 

Contexte

Il existe de nombreuses boîtes aux lettres dans Exchange onpremise pour lesquelles IMAP et POP sont activés, mais est ce que réellement ces protocoles sont utilisés pour se connecter à Exchange ou pas ?

Démarche

Récupérons tout d'abord les utilisateurs pour lesquels IMAP et POP sont activés dans l'environnement Exchange Onpremise, puis comparons-les aux journaux IMAP et POP.

  1. Télécharger l’outil Log Parser Download Log Parser 2.2 from Official Microsoft Download Center puis installer-le au niveau du poste depuis lequel l’analyse sera effectuée.
  2. Filtrer les utilisateurs avec IMAP et POP activés en exéxutant tout d'abord les commandes suivantes au niveau de l'interface Exchange Powershell :

    $ImapEnabled = Get-CASMailbox -Filter {Imapenabled -eq $true} -ResultSize unlimited

    $PopEnabled = Get-CASMailbox -Filter {Popenabled -eq $true} -ResultSize unlimited

  3. Analyser les journaux IMAP et POP pour voir quels comptes se connectent réellement à ces protocoles.

  4. Examiner et comparer les deux ensembles de données :

Utiliser Excel ou des commandes similaires à celles ci-dessous :

Compare-Object $ImapLogs $($ImapEnabled.name) | Where sideindicator -eq “<=”

Compare-Object $POPLogs $($POPEnabled.name) | Where sideindicator -eq “<=”

 

Les utilisateurs qui utilisent activement IMAP et POP sont stockés respectivement dans les $IMAPLogs et $POPLogs. Tous les autres trouvés dans $IMAPEnabled et $POPEnabled et qui ne sont pas dans $IMAPLogs et $POPLogs pourraient avoir les protocoles potentiellement désactivés. 

 

Exchange_Erreur de suppression de l'abonnement Edge 2010 dans une infrastructure Exchange 2013

Description du problème

Lorsqu’il s’agit de supprimer l’abonnement Edge 2010 dans une organisation contenant des serveurs Exchange 2013, le message d'erreur ci-dessous apparaît suite à l'exécution de la commande Remove-EdgeSubscription servername, 

Remove-EdgeSubscription : Impossible d’effectuer cette modification car la propriété ExchangeVersion de l’objet est 0.20 (15.0.0.0), ce qui n’est pas pris en charge par la version actuelle 0.1 (8.0.535.0). Vous aurez besoin d’une version plus récente d’Exchange pour effectuer cette modification. Nom de la propriété : ExchangeVersion
At line:1 char:24 + Remove-EdgeSubscription <<<< edge2 -Verbose
+ CategoryInfo : NotSpecified: (0:Int32) [Remove-EdgeSubscription], DataValidationException
+ FullyQualifiedErrorId : D8A49A14,Microsoft.Exchange.Management.SystemConfigurationTasks.RemoveEdgeSubscription

 

Explication et Résolution

La commande Remove-EdgeSubscription supprime à la fois l’abonnement et tous les objets abonnés de la base de données ADAM locale sur le serveur Edge. Mais si l’un de ces objets abonnés a été créé sur Exchange 2013 après son installation, ils auront une version ExchangeVersion égale à 0.20 (15.0.0.0) et Exchange 2010 SP3 ne peut pas traiter cet objet d'ou le message d'erreur dessus.

 

Pour résoudre ce problème, via ADSIEDIT, recherchez et supprimez manuellement l’objet avec une version Exchange 0.20 (15.0.0.0) de la base de données AD LDS, puis réexécutez la cmdlet Remove-EdgeSubscription, cela devrait maintenant fonctionner (sauf si vous avez deux objets ou plus avec le numéro de version le plus élevé à chercher et à supprimer).

  1. Pour rechercher des objets avec une version ExchangeVersion supérieure à "0.1 (8.0.535.0)", correspondante à la version qu’Exchange 2010, ouvrez ADSIEdit sur le serveur Edge.

2. Cliquez avec le bouton droit sur le nœud ADSI Edit en haut de la fenêtre et choisissez Connect to...

3. Dans la boîte de dialogue Paramètres de connexion (illustrée ci-dessus), définissez le champ Sélectionner un contexte d’appellation connu sur Configuration . Tapez le nom du serveur local et le port AD LDS dans le champ Sélectionner ou taper un domaine ou un serveur. La valeur "server:port" doit être EDGESERVERNAME:50389

5. Développez l’arborescence jusqu’à ce que vous atteigniez CN=First organisation,CN=Microsoft Exchange,CN=Services,CN=Configuration,CN={...................}

6. Vous devez maintenant examiner chaque objet dont la valeur msExchVersion n’est pas 4535486012416. Par exemple, si vous aviez créé un domaine accepté en raison de la fédération dans Exchange 2013, il s’agirait d’un nouvel objet depuis 2010. Cet objet (sous CN=Accepted Domains,CN=Transport Setting,...) a la valeur 88218628259840. 

  • Pour vérifier qu’il s’agit de l’objet correct à supprimer manuellement, entrez Get-Object |FT name,ExchangeVersion à partir de l’environnement de ligne de commande Exchange Management Shell sur le serveur Edge où Object est la cmdlet que vous cherchez à interroger - dans le présent cas, ce serait Get-AcceptedDomain. Cet objet a une version ExchangeVersion plus récente et c’est donc (au moins) cet objet empêche la suppression de l'abonnement Exchange.
  • Supprimez manuellement l’objet dans ADSI Edit (vous pouvez le faire en toute sécurité, car il sera resynchronisé à partir de l’organisation Exchange si vous recréez l’abonnement Edge ultérieurement). Ne le supprimez pas d’Active Directory avec ADSI Edit, mais uniquement d’AD LDS. Veillez à ne supprimer que cet objet et non l’objet parent.

7. Une fois cet objet est supprimé, réessayez Remove-EdgeSubscription servername. S’il s’agit du seul objet, l’abonnement Edge sera supprimé du serveur Edge.

 

 

 

Exchange 2013 – Update Rollup et redémarrage en boucle

Problématique

Lors de l’installation d’un CU sur un serveur Exchange 2013, l’assistant d’installation vous demande de redémarrer en boucle sans jamais valider le redémarrage.

2018-03-29_160513

Solution

Si après un redémarrage le message d’erreur apparaît toujours, vous pouvez aller modifier la clé de registre suivante :

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

Supprimer la valeur de cette clé et relancer l’assistant d’installation.

2018-03-29_192556

Exchange 2013 – Erreur HttpEvent 15021

Problématique

Sur un serveur Exchange 2013, la connexion PowerShell ne s’effectue pas et le portail d’administration affiche une page blanche.

2018-03-29_105153

2018-03-29_105411

Dans le journal d’événements système un grand nombre d’erreur HttpEvent 15021 est présent.

2018-03-29_105128

Ces erreurs peuvent intervenir après le changement d’un certificat sur le serveur Exchange.

Résolution

Le problème vient de la liaison du certificat qui est incorrect sur le port 444. Il faut donc la supprimer et la recréer.

Pour cela, afficher l’ensemble des liaisons SSL avec la commande :

netsh http show sslcert

2018-03-29_105203

Récupérer les valeurs du hash et l’application ID de la liaison sur le port 443.

Supprimer la liaison du port 444 avec la commande :

netsh http delete sslcert ipport=0.0.0.0:444

2018-03-29_105239

Et recréer une liaison en utilisant le hash et l’application ID du port 443 avec la commande :

netsh http add sslcert ipport=0.0.0.0:444 certhash=XXXXXXX appid=”{XXXXXXXX}”

2018-03-29_105352

Dans le journal d’événements deux avertissements HttpEvent 15300 et 15301 apparaissent.

2018-03-29_105518

Une fois la modification effectuée, la connexion PowerShell et le portail d'administration sont de nouveau accessibles.

Le client Outlook n'arrive plus à accéder à la GAL sur Exchange Server 2013

Problème:

Les clients Outlook n'arrivent plus à accéder à la GAL sur Exchange, et donc les utilisateurs sont dans l'incapacité d'ajouter des salles de réunions ou de rechercher contacts qui ne sont pas dans leur cache Outlook. Le client se fige et le message d'erreur suivant apparait après quelques dizaines de secondes:

Troubleshooting:

  • Vérification des journaux d'événements .
  • Vérification de la réplication AD et Exchange.
  • Régénération de l'OAB et MaJ de la GAL. 
  • Déplacement de la boite mail contenant l'OAB vers un autre serveur.
  • Entrée dans le fichier host pour pointer directement sur le serveur hébergeant l'OAB.
  • Test d'accès sur l'URL EWS et l'URL OAB.
  • Vérification des logs IIS.

 

Solution:

Des erreurs 401 étaient retournées depuis le serveur dans les logs IIS. Pour résoudre cette erreur il a fallu redémarrer les services IIS, puis les services "RPC Client Access" et "MS Exchange Throttling", puis de nouveau redémarrer les services IIS.

 

Compteurs de performance Exchange en erreur

Problème:

Après une installation d'Exchange avec un chemin d'installation différent de celui par défaut, certains compteurs de performance remontent en erreur dans les journaux d'événements.

Solution:

Reconstruire les compteurs de performance à l'aide du script suivant:

 

Add-Pssnapin Microsoft.Exchange.Management.PowerShell.Setup

$Fichiers =get-childitem "E:\Exchange Server\Setup\Perf\" *.xml |where-object {!($_.psiscontainer)}

foreach ($fichier in $fichiers) {

Remove-perfcounters -Definitionfilename $file.fullname

}
foreach ($fichier in $fichiers) {

New-perfcounters -Definitionfilename $file.fullname

}