Настройка службы автообнаружения Exchange с использованием URL-адреса узла личных сайтов в SharePoint Server
**Применимо к:**SharePoint Server 2013, SharePoint Server 2016
**Последнее изменение раздела:**2017-11-02
Сводка. Сведения о настройке автообнаружения Exchange для поиска URL-адреса личного сайта SharePoint пользователя.
Благодаря личному сайту в SharePoint Server у пользователей есть широкие возможности для работы с социальными сетями и совместной работы: предоставление доступа к контенту, обсуждение и другие функции, помогающие пользователям выполнять их задачи. Служба автообнаружения Exchange Server 2013 настраивает параметры профиля в почтовых клиентах и на мобильных устройствах в соответствии с именем и паролем пользователя. Службу автообнаружения можно настроить так, чтобы обеспечить простую и комфортную настройку личного сайта для интеграции клиента Office 2016. Например, клиенты Office 2016 и приложения для мобильных телефонов могут использовать службу автообнаружения Exchange для поиска личного сайта пользователя по URL-адресу узла личных сайтов, хранящемуся в доменных службах Active Directory (AD DS). Не требуется определять и вводить URL-адрес узла личных сайтов, достаточно указать электронный адрес и пароль пользователя, чтобы настроить и подготовить функции клиента для следующего:
OneDrive для бизнесаоткрытия и сохранения документа в папке OneDrive для бизнеса;
доступа к каналу новостей с устройства;
раздела "Office" — настройки приложения на Windows Phone.
В этой статье представлены указания по обновлению AD DS с URL-адресом узла личных сайтов в SharePoint Server. В ней также подробно описано получение и удаление текущего URL-адреса узла личных сайтов на случай, если потребуется использовать текущее значение или заменить его.
Важно!
Прежде чем переходить к следующему разделу, необходимо установить и настроить среды SharePoint Server и Exchange Server 2013. Кроме того, необходимо настроить личные сайты в SharePoint Server. Дополнительные сведения о том, как реализовать личные сайты и получить URL-адрес узла личных сайтов, см. в статье Настройка личных сайтов в SharePoint Server.
Настройка службы автообнаружения Exchange с помощью URL-адреса личного сайта
Чтобы обновить доменные службы Active Directory с использованием URL-адреса узла личного сайта, необходимо запустить скрипт на компьютере Exchange Server с помощью командной консоли Exchange. Эта процедура поможет вам создать скрипт PowerShell, а затем запустить его, чтобы обновить AD DS по указанному URL-адресу. Она также содержит необязательные этапы проверки и удаления записи URL-адреса узла личного сайта, если это необходимо. Дополнительные сведения о том, как запускать скрипты, см. в статье Создание сценариев в среде управления Exchange из технической библиотеки, посвященной Exchange Server 2013.
Настройка службы автообнаружения Exchange с использованием URL-адреса узла личных сайтов
На компьютере 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 ""
Откройте командную консоль Exchange.
В командной консоли Exchange перейдите к каталогу, где сохранен сценарий, и запустите сценарий с указанным URL-адресом узла личного сайта. Например, если URL-адрес узла имеет вид https://server/sites/contoso, то синтаксис в командной консоли Exchange может выглядеть следующим образом:
[PS] C:\> c:\SetMySiteHostURLInAD.ps1 https://server/sites/contoso
Нажмите клавишу ВВОД, чтобы запустить сценарий и обновить AD DS с помощью URL-адреса узла личного сайта.
Чтобы убедиться, что обновлен нужный URL-адрес, выполните следующую команду:
[PS] C:\> c:\SetMySiteHostURLInAD.ps1 -get
Примечание
При необходимости вы можете удалить URL-адрес узла личного сайта, введя команду [PS] C:> c:\SetMySiteHostURLInAD.ps1 -remove.
После настройки URL-адреса узла личных сайтов вы можете проверить значение на сайте центра администрирования SharePoint. В разделе Управление приложениями выберите Управление приложениями-службами, Приложение-служба профилей пользователей (или другое выбранное имя приложения службы профилей пользователей), Параметры личных сайтов и Настройка личных сайтов. На странице Параметры личных сайтов вы увидите, что поле URL-адрес личного сайта в Active Directory заполнено вашей записью.
Примечание
Поле URL-адрес узла личного сайта в Active Directory невозможно заполнить через Центр администрирования, а значение URL-адреса узла личного сайта необходимо указать согласно приведенным выше указаниям.