Configurer la découverte automatique d’Exchange avec une URL d’hôte Mon site dans SharePoint Server

 

**Sapplique à :**SharePoint Server 2013, SharePoint Server 2016

**Dernière rubrique modifiée :**2017-11-02

Résumé : Découvrez comment configurer le service Découverte automatique d’Exchange pour rechercher l’URL du site Mon site SharePoint d’un utilisateur.

Dans SharePoint Server, un site Mon site permet aux utilisateurs d’enrichir les fonctionnalités de réseau social et de collaboration qui activent le partage de contenu, les discussions et d’autres fonctionnalités pour que les utilisateurs puissent effectuer leurs tâches. Le service de découverte automatique Exchange Server 2013 configure les paramètres de profil sur les clients de messagerie et les appareils mobiles à partir du nom d’utilisateur et du mot de passe fournis. Le service de découverte automatique peut également être configuré pour autoriser une expérience de configuration de Mon site plus simple et transparente pour l’intégration d’un client Office 2016. Par exemple, des applications client et de téléphone mobile Office 2016 peuvent utiliser la découverte automatique d’Exchange pour rechercher le site Mon site d’un utilisateur en fonction de l’URL d’hôte Mon site stockée dans Active Directory Domain Services (AD DS). Au lieu d’identifier et de saisir l’URL d’hôte Mon site, l’adresse de messagerie et le mot de passe d’un utilisateur sont les seules conditions requises pour la configuration et la mise en service des fonctionnalités de client pour :

  • OneDrive Entreprise— Ouvrez et enregistrez un document sur votre emplacement OneDrive Entreprise.

  • Accédez à un flux d’actualités sur un appareil.

  • Hub Office : configurez l’application sur votre Windows Phone.

Cet article décrit les étapes nécessaires pour mettre à jour les services AD DS avec votre URL d’hôte Mon site dans SharePoint Server. Il décrit également les étapes nécessaires pour récupérer ou supprimer l’URL d’hôte Mon site actuel si vous avez besoin d’afficher la valeur actuelle ou de la remplacer.

Important

Avant de passer à la section suivante, vous devez déjà avoir installé et configuré vos environnements SharePoint Server et Exchange Server 2013. En outre, vous devez installer et configurer Mes sites dans SharePoint Server. Pour plus d’informations sur l’implémentation de Mes sites et la récupération de l’URL d’hôte de Mon site, reportez-vous à Configurer les sites Mon site dans SharePoint Server.

Configurer la découverte automatique d’Exchange avec une URL d’hôte Mon site

Pour mettre à jour les services AD DS avec l’URL d’hôte Mon site, vous devez exécuter un script sur un ordinateur Exchange Server à l’aide d’Exchange Management Shell. Cette procédure vous permet de créer le script PowerShell et d’exécuter le script pour mettre à jour les services AD DS avec la valeur d’URL spécifiée. Cette procédure décrit également les étapes facultatives pour vérifier et supprimer une entrée de l’URL d’hôte Mon site si nécessaire. Pour plus d’informations sur l’exécution de scripts, voir Scripts dans Exchange Management Shell dans la bibliothèque technique Exchange Server 2013.

Pour configurer la découverte automatique d’Exchange avec une URL d’hôte Mon site

  1. Sur un ordinateur Exchange Server 2013, copiez le contenu du script suivant dans le Bloc-notes. Enregistrez ce fichier sur n’importe quel emplacement et utilisez une extension .ps1 pour le désigner comme étant un script PowerShell. Enfin, renommez le fichier SetMySiteHostURLInAD.ps1.

    function PrintUsage
    {
    @"
    
    NAME:
    SetMySiteHostURLInAD.ps1
    
    SYNOPSIS:
    The purpose of this script is to set My Site Host URL in Active Directory.
    This URL will be returned through Exchange Autodiscover.
    
    MySiteHostURL - URL of My Site Host to set in Active Directory.
    Or use -get to get My Site Host URL from Active Directory.
    Or use -remove to remove My Site Host URL from Active Directory.
    
    SYNTAX:
    SetMySiteHostURLInAD.ps1 "MySiteHostURL" | -get | -remove
    
    EXAMPLES:
    SetMySiteHostURLInAD.ps1 "http://my"
    SetMySiteHostURLInAD.ps1 -get
    SetMySiteHostURLInAD.ps1 -remove
    
    "@
    }
    
    function GetConfigurationNamingContextPath
    {
        return GetEntryProperty "LDAP://RootDSE" "configurationNamingContext"
    }
    
    function GetExchangePath
    {
        param([string]$configurationNamingContextPath)
    
        return "LDAP://CN=Microsoft Exchange,CN=Services," + $configurationNamingContextPath
    }
    
    function GetOrganizationContainerPath
    {
        param([string]$exchangePath)
    
        [string]$organizationContainerPath = ""
    
        ([ADSI] $exchangePath).Children | foreach {
          if (!$organizationContainerPath -and $_.SchemaClassName -eq "msExchOrganizationContainer") {
             $organizationContainerPath = $_.Path
                }
        }
    
        return $organizationContainerPath
    }
    
    function GetEntryProperty
    {
        param([string]$entryPath, [string]$propertyName)
    
        $entry = [ADSI] $entryPath
    
        [string]$value = ""
    
        trap {
             continue
        }
    
        $value = $entry.Get($propertyName)
    
        return $value
    }
    
    function SetEntryProperty
    {
        param([string]$entryPath, [string]$propertyName, [string]$propertyValue)
    
        $entry = [ADSI] $entryPath
    
        if (!$propertyValue)
        {
            $entry.PutEx(1, $propertyName, $null)
        }
        else
        {
            $entry.Put($propertyName, $propertyValue)
        }
    
        trap {
            Write-Host "`nError setting property" -ForegroundColor Red
            continue
        }
    
        $entry.SetInfo()
    }
    
    function AddOrReplaceOrRemoveMySiteHostURL
    {
        param([string]$old, [string]$url)
    
        [string]$separator = ";"
        [string]$label = "SPMySiteHostURL" + $separator
    
        if (!$old)
          {
             if (!$url)
                {
                  return ""
                }
             else
                {
                  return $label + $url
                }
          }
    
        [int]$labelPosition = $old.IndexOf($label)
        if ($labelPosition -eq -1)
          {
             if (!$url)
                {
                  return $old
                }
             else
                {
                  if ($old[$old.Length - 1] -eq $separator)
                  {
                  return $old + $label + $url
                  }
                  else
                  {
            return $old + $separator + $label + $url
                  }
                }
            }
    
        [int]$valuePosition = $labelPosition + $label.Length
    
        [int]$nextLabelPosition = $old.IndexOf($separator, $valuePosition)
         if ($nextLabelPosition -eq -1)
           {
             if (!$url)
             {
                  if ($labelPosition -eq 0)
                  {
                     return ""
                  }
                  else
                  {
                     return $old.Substring(0, $labelPosition - 1)
                  }
              }
             else
             {
                  return $old.Substring(0, $valuePosition) + $url
             }
          }
    
         if (!$url)
           {
              return $old.Substring(0, $labelPosition) + $old.Substring($nextLabelPosition + 1)
           }
          else
           {
              return $old.Substring(0, $valuePosition) + $url + $old.Substring($nextLabelPosition)
           }
    }
    
    if ($args.Count -ne 1)
    {
        Write-Host "`nError: Required argument missing or too many arguments" -ForegroundColor Red
        PrintUsage
        exit
    }
    
    if ($args[0] -eq "-?" -or $args[0] -eq "-h" -or $args[0] -eq "-help")
    {
        PrintUsage
        exit
    }
    
    [string]$url = ""
    if ($args[0] -ne "-r" -and $args[0] -ne "-remove")
    {
        $url = $args[0]
    }
    
    Write-Host "`nSetting My Site Host URL in Active Directory..."
    
    [string]$configurationNamingContextPath = GetConfigurationNamingContextPath
    Write-Host "`nConfiguration Naming Context path: $configurationNamingContextPath"
    
    [string]$exchangePath = GetExchangePath $configurationNamingContextPath
    Write-Host "`nExchange path: $exchangePath"
    
    [string]$organizationContainerPath = GetOrganizationContainerPath $exchangePath
    Write-Host "`nOrganization Container path: $organizationContainerPath"
    
    [string]$propertyName = "msExchServiceEndPointURL"
    Write-Host "`nProperty name: $propertyName"
    
    [string]$old = GetEntryProperty $organizationContainerPath $propertyName
    Write-Host "`nOld value: $old"
    
    if (!$url)
    {
        Write-Host "`nRemoving value"
    }
    elseif ($url -eq "-g" -or $url -eq "-get")
    {
        Write-Host ""
        exit
    }
    else
    {
        Write-Host "`nAdding or replacing value: $url"
    }
    
    [string]$new = AddOrReplaceOrRemoveMySiteHostURL $old $url
    Write-Host "`nNew value: $new"
    
    SetEntryProperty $organizationContainerPath $propertyName $new
    Write-Host ""
    
  2. Ouvrez l’environnement de ligne de commande Exchange Management Shell.

  3. Dans Exchange Management Shell, accédez au répertoire où vous avez enregistré le script et exécutez le script avec votre URL d’hôte Mon Site spécifiée. Par exemple, si vous avez une URL d’hôte de https://server/sites/contoso, la syntaxe peut ressembler à ce qui suit dans Exchange Management Shell :

    [PS] C:\>  c:\SetMySiteHostURLInAD.ps1      https://server/sites/contoso
    
  4. Appuyez sur ENTRÉE pour exécuter le script et mettre à jour les services AD DS avec l’URL d’hôte Mon site.

  5. Pour vérifier que l’URL correcte a été mise à jour, exécutez la commande suivante :

    [PS] C:\>  c:\SetMySiteHostURLInAD.ps1      -get
    

    Notes

    Si vous le souhaitez, vous pouvez supprimer une URL d’hôte Mon site en entrant la commande [PS] C:> c:\SetMySiteHostURLInAD.ps1 -remove.

Une fois que vous avez configuré l’URL d’hôte Mon site, vous pouvez également vérifier la valeur dans le site Web Administration centrale de SharePoint. À partir de Gestion des applications, accédez à Gérer les applications de service, Application de service de profil utilisateur (ou autre nom choisi pour l’Application de service de profil utilisateur), Paramètres du site Mon site et enfin Configurer Mes sites. Dans la page Paramètres du site Mon site, vous verrez que l’URL de l’hôte Mon site dans Active Directory est renseignée avec votre entrée.

My Site Host URL in Active Directory

Notes

Le champ URL de l’hôte Mon site dans Active Directory ne peut pas être rempli dans l’Administration centrale, et la valeur de l’URL de l’hôte Mon site doit être fournie à l’aide de la procédure détaillée précédente.

See also

Configurer les sites Mon site dans SharePoint Server