Tuesday, January 10, 2017

Exchange 2016 (1) : Urls et répertoires virtuels


English summary: I configure Urls for the Exchange virtual directories after the installation of Exchange 2016 (CU3). Three methods are presented: configuration in the EAC (Exchange Admin Center), configuration in the EMS (Exchange Management Shell - PowerShell) and configuration with a script.

*

Dans un billet de blogue précédent, j'ai installé Exchange 2016 (pre-release) et puis, un an et demi plus tard, Exchange 2016 CU3 :

Exchange 2016 CU3 - updated pre-requisites, Active Directory preparation... and a word of caution

Je visais alors à installer Exchange 2016 (CU3) dans un environnement d'essai Exchange 2010 (SP3) mais j'y ai renoncé (pour diverses raisons) et décidé de faire une toute nouvelle installation dans un environnement d'essai séparé.

C'est ce que j'ai fait. Je me trouve donc avec une telle installation et il faut désormais configurer de nombreux éléments, parmi lesquels :
  1. Urls et Uris pour les répertoires virtuels des services accès client (ECP, OWA, OAB, MAPI, EAS, EWS, Autodiscover). 
  2. Les certificats SSL pour sécuriser les connexions à ces répertoires virtuels
  3. Les bases de données des boîtes aux lettres
  4. Les connecteurs d'envoi et de réception
Dans ce billet de blogue, je vais m'occuper du premier point énuméré ci-dessus : les Urls et les Uris (commençant en fait par l'Uri - il n'y a qu'un seul).

***

Le premier Url à configurer n'est donc pas tout à fait un "Url" mais un "Uri". Il s'agit d'indiquer le SCP (Service Connection Point) pour Autodiscover dans Active Directory.

Une petite précision à ce sujet : quand nous ouvrons Outlook sur un client au sein du réseau local (LAN), Autodiscover va tenter de trouver les coordonnées des serveurs fournissant des services "accès client" dans Active Directory plutôt que dans DNS.

Note : il faut, bien entendu, que le client recoure à DNS pour trouver les contrôleurs de domaine mais, une fois cela fait, Autodiscover cherche un objet SCP dans l'annuaire Active Directory plutôt qu'un enregistrement dans DNS. Par contre, si Active Directory n'est pas accessible, comme à l'extérieur du réseu local, Autodiscover recourt alors carrément à DNS.

Nous devons donc configurer l'Uri pour Autodiscover. Par défaut, nous avons la valeur suivante :

Get-ClientAccessService | fl name,AutoDiscoverServiceInternalUri

Name : EX16-3
AutoDiscoverServiceInternalUri :
https://ex16-3.machlinkit.biz/Autodiscover/Autodiscover.xml

Note : j'ai bel et bien ajusté la sortie de la commande pour une meilleure mise en page.

Cela ne convient pas. Au lieu du nom d'un serveur spécifique, nous devrions préférer un terme plus général comme "mail" (particulièrement utile si nous avons plus d'un serveur et mettons en oeuvre un système d'équilibrage de charge. Désigner le nom d'un seul serveur dans un tel scénario n'est pas efficace).

Nous pouvons modifier l'Uri pour Autodiscover avec la commande suivante :

Set-ClientAccessService -Id EX16-3 -AutoDiscoverServiceInternalUri https://mail.machlinkit.biz/Autodiscover/Autodiscover.xml

Ce qui nous donne :

Get-ClientAccessService | fl name,AutoDiscoverServiceInternalUri

Name : EX16-3
AutoDiscoverServiceInternalUri :
https://mail.machlinkit.biz/Autodiscover/Autodiscover.xml

Quelques remarques...
  • Il n'existe aucun "AutoDiscoverServiceExternalUri". Cet Uri sert seulement au réseau local où l'annuaire Active Directory est acccessible.
  • Il n'y a aucun Url à configurer pour Autodiscover. Nous pouvons le faire si cela nous fait plaisir mais cela ne sert à rien :

Busting The Set-AutodiscoverVirtualDirectory Myth


***

Quant aux Urls, proprement dits, nous avons trois options :

  1. Les configurer dans l'interface graphique EAC (Exchange Admin Center)
  2. Les configurer dans l'EMS à la ligne de commande avec des cmdlets PowerShell
  3. Les configurer avec un script

Je vais présenter chacune de ces options.

Les sept répertoires virtuels sont visibles (et configurables) dans la section "serveurs" de l'EAC :


  1. ecp (le répertoire virtuel garde le nom d'Exchange Control Panel qui s'est transformé en Exchange Admin Center (EAC).
  2. EWS (Exchange Web Services : indication de disponibilité au calendrier et notifications d'absences au bureau, par exemple).
  3. mapi (ce répertoire correspond aux connexions Outlook qui se font désormais, elles aussi, par http : mapi/http).
  4. Microsoft-Server-ActiveSync (les connexions faites à partir des téléphones mobiles et appareils comparables).
  5. OAB (Offline Address Book - permet d'avoir son carnet même si Outlook n'est pas en mesure de connecter au serveur Exchange.
  6. owa (Outlook Web Access, App ou Outlook on the Web selon la version - c'est sans cesse renommé)
  7. PowerShell (il y a aussi un répertoire virtuel pour PowerShell)
Et Autodiscover ? Nous pouvons ne pas tenir compte de sa présence ici pour ce qui concerne les Urls. Comme nous avons déjà vu, il suffit de configurer un Uri pour Autodiscover et il est parfaitement inutile de configurer les Urls (d'ailleurs, ce n'est même pas possible dans l'EAC).

Je vais donc configurer le répertoire virtuel ecp. Une fois celui-ci sélectionné, je clique sur l'icône du stylo (consulter la capture d'écran plus haut - voir le point rouge).

Dans la section "général", nous voyons l'Url interne (déjà configuré mais avec le nom du serveur) et l'Url externe qui est blanc :




Je modifie les valeurs comme suit (en particulier, "mail" remplace le nom du serveur pour l'Url interne) :



Quand j'enregistre les changements, l'avertissement ci-dessous s'affiche :




Les Urls des répertoires ecp et owa devraient être les mêmes. Je fais donc les mêmes changements pour owa :




Pour les autres Urls, je vais avoir recours à la ligne de commande (EMS).

D'abord, remarquons que nous pouvons observer les valeurs par défaut (avant les changements que j'ai commencé à faire plus haut) avec les cmdlets suivantes :

Get-EcpVirtualDirectory | fl name,*ternalurl*

Name        : ecp (Default Web Site)
InternalUrl : https://ex16-3.machlinkit.biz/ecp
ExternalUrl :

Get-WebServicesVirtualDirectory | fl name,*ternalurl*

Name        : EWS (Default Web Site)
InternalUrl : https://ex16-3.machlinkit.biz/EWS/Exchange.asmx
ExternalUrl :

Get-MapiVirtualDirectory | fl name,*ternalurl*

Name        : mapi (Default Web Site)
InternalUrl : https://ex16-3.machlinkit.biz/mapi
ExternalUrl :

Get-ActiveSyncVirtualDirectory | fl name,*ternalurl*

Name        : Microsoft-Server-ActiveSync (Default Web Site)
InternalUrl : https://ex16-3.machlinkit.biz/Microsoft-Server-ActiveSync
ExternalUrl :

Get-OABVirtualDirectory | fl name,*ternalurl*

Name        : OAB (Default Web Site)
InternalUrl : https://ex16-3.machlinkit.biz/OAB
ExternalUrl :

Get-OWAVirtualDirectory | fl name,*ternalurl*

Name        : owa (Default Web Site)
InternalUrl : https://ex16-3.machlinkit.biz/owa
ExternalUrl :

Get-PowerShellVirtualDirectory | fl name,*ternalurl*

Name        : PowerShell (Default Web Site)
InternalUrl : http://ex16-3.machlinkit.biz/powershell
ExternalUrl :


Pour la configuration de ces Urls, nous pouvons nous y prendre de différentes manières. J'ai configuré les Urls interne et externe séparément ci-dessous pour obtenir ce que je croyais être une meilleure lisibilité, et en faisant appel au jeu de flèches et de tabulation pour ne pas avoir à tout retaper pour chaque répertoire. Cela dit, vous pourriez tout aussi bien configurer l'Url interne et l'Url externe sur la même ligne.


Get-WebServicesVirtualDirectory | Set-WebServicesVirtualDirectory -InternalUrl https://mail.machlinkit.biz/EWS/Exchange.asmx

Get-WebServicesVirtualDirectory | Set-WebServicesVirtualDirectory -ExternalUrl https://mail.machlinkit.biz/EWS/Exchange.asmx

*

Get-MapiVirtualDirectory | Set-MapiVirtualDirectory -InternalUrl https://mail.machlinkit.biz/mapi

Get-MapiVirtualDirectory | Set-MapiVirtualDirectory -ExternalUrl https://mail.machlinkit.biz/mapi

*

Get-ActiveSyncVirtualDirectory | Set-ActiveSyncVirtualDirectory -InternalUrl https://mail.machlinkit.biz/Microsoft-Server-ActiveSync

Get-ActiveSyncVirtualDirectory | Set-ActiveSyncVirtualDirectory -ExternalUrl https://mail.machlinkit.biz/Microsoft-Server-ActiveSync

*

Get-OABVirtualDirectory | Set-OabVirtualDirectory -InternalUrl https://mail.machlinkit.biz/OAB

Get-OABVirtualDirectory | Set-OabVirtualDirectory -ExternalUrl https://mail.machlinkit.biz/OAB

*

Get-PowerShellVirtualDirectory | Set-PowerShellVirtualDirectory -InternalUrl http://mail.machlinkit.biz/powershell

Get-PowerShellVirtualDirectory | Set-PowerShellVirtualDirectory -ExternalUrl http://mail.machlinkit.biz/powershell


Note : les astérisques qui séparent les groupes de cmdlets ci-dessus servent simplement à aérer la présentation.


***

Pour les scripts, nous avons aussi l'embarras du choix et je me contenterai de n'en présenter que deux.

Steve Goodman (Exchange MVP) propose un script dans une série consacrée à la migration Exchange 2010 - 2016 :

Steve Goodman - Migrating a small organization from Exchange 2010 to Exchange 2016 (Part 3)

Note : voir la section "Configuring Exchange URLs using the Exchange Management Shell"


Paul Cunningham (Exchange MVP) propose un autre script "ConfigureExchangeURLs.ps1" ici :

PowerShell Script to Configure Exchange Server Client Access URLs


***

Et voilà les différentes options pour la configuration des Urls (et Uri...) des nos répertoires virtuels.

Dans mon prochain billet de blogue, je vais présenter l'installation d'un certificat SSL pour sécuriser nos connexions HTTP.

No comments:

Post a Comment