Настройка службы автообнаружения Exchange с использованием URL-адреса узла личных сайтов в SharePoint Server

ОБЛАСТЬ ПРИМЕНЕНИЯ:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint в Microsoft 365

Благодаря личному сайту в SharePoint Server у пользователей есть широкие возможности для работы с социальными сетями и совместной работы: предоставление доступа к контенту, обсуждение и другие функции, помогающие пользователям выполнять их задачи. Служба автообнаружения Exchange Server 2013 настраивает параметры профиля в почтовых клиентах и на мобильных устройствах в соответствии с именем и паролем пользователя. Службу автообнаружения можно настроить так, чтобы обеспечить простую и комфортную настройку личного сайта для интеграции клиента Office 2016. Например, клиенты Office 2016 и приложения для мобильных телефонов могут использовать службу автообнаружения Exchange для поиска личного сайта пользователя по URL-адресу узла личных сайтов, хранящемуся в доменных службах Active Directory (AD DS). Не требуется определять и вводить URL-адрес узла личных сайтов, достаточно указать электронный адрес и пароль пользователя, чтобы настроить и подготовить функции клиента для следующего:

  • Microsoft OneDrive— откройте и сохраните документ в расположении OneDrive.

  • доступа к каналу новостей с устройства;

  • раздела "Office" — настройки приложения на Windows Phone.

В этой статье представлены указания по обновлению AD DS с URL-адресом узла личных сайтов в SharePoint Server. В ней также подробно описано получение и удаление текущего URL-адреса узла личных сайтов на случай, если потребуется использовать текущее значение или заменить его.

Важно!

Прежде чем перейти к следующему разделу, необходимо установить и настроить среду SharePoint Server и Exchange Server 2013. Кроме того, необходимо настроить и настроить личные сайты в SharePoint Server. Дополнительные сведения о реализации личных сайтов и получении URL-адреса узла личных сайтов см. в статье Настройка личных сайтов в SharePoint Server.

Настройка службы автообнаружения Exchange с помощью URL-адреса личного сайта

Чтобы обновить AD DS с помощью URL-адреса узла личных сайтов, необходимо выполнить скрипт на Exchange Server компьютере с помощью командной консоли Exchange. Эта процедура помогает создать скрипт PowerShell, а затем запустить скрипт, чтобы обновить доменные службы Active Directory с указанным значением URL-адреса. Она также содержит необязательные этапы проверки и удаления записи URL-адреса узла личного сайта, если это необходимо. Дополнительные сведения о выполнении скриптов см. в статье Скрипты с помощью командной консоли Exchange в технической библиотеке Exchange Server 2013.

Настройка службы автообнаружения Exchange с использованием URL-адреса узла личных сайтов

  1. На компьютере Exchange Server 2013 скопируйте содержимое следующего сценария в Блокнот. Сохраните этот файл в любую папку, используя расширение PS1, чтобы обозначить его как сценарий PowerShell. Напоследок переименуйте файл в 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 ""
  1. Откройте командную консоль Exchange.

  2. В командной консоли Exchange перейдите к каталогу, где сохранен сценарий, и запустите сценарий с указанным URL-адресом узла личного сайта. Например, если URL-адрес узла имеет вид http://server/sites/contoso, то синтаксис в командной консоли Exchange может выглядеть следующим образом:

[PS] C:\>  c:\SetMySiteHostURLInAD.ps1      http://server/sites/contoso
  1. Нажмите клавишу ВВОД, чтобы запустить сценарий и обновить AD DS с помощью URL-адреса узла личного сайта.

  2. Чтобы убедиться, что обновлен нужный URL-адрес, выполните следующую команду:

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

При необходимости вы можете удалить URL-адрес узла личного сайта, введя следующую команду:

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

После настройки URL-адреса узла личных сайтов вы можете проверить значение на сайте центра администрирования SharePoint. В разделе Управление приложениями выберите Управление приложениями-службами, Приложение-служба профилей пользователей (или другое выбранное имя приложения службы профилей пользователей), Параметры личных сайтов и Настройка личных сайтов. На странице Параметры личных сайтов вы увидите, что поле URL-адрес личного сайта в Active Directory заполнено вашей записью.

URL-адрес узла личных сайтов в Active Directory

Примечание.

Поле URL-адрес узла личного сайта в Active Directory невозможно заполнить через Центр администрирования, а значение URL-адреса узла личного сайта необходимо указать согласно приведенным выше указаниям.

См. также

Понятия

Настройка личных сайтов в SharePoint Server