Настройка службы автообнаружения Exchange с использованием URL-адреса узла личных сайтов в SharePoint Server
ОБЛАСТЬ ПРИМЕНЕНИЯ:2013 2016 2019 Subscription Edition SharePoint в 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-адреса узла личных сайтов
- На компьютере 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-адрес узла имеет вид http://server/sites/contoso, то синтаксис в командной консоли Exchange может выглядеть следующим образом:
[PS] C:\> c:\SetMySiteHostURLInAD.ps1 http://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-адреса узла личного сайта необходимо указать согласно приведенным выше указаниям.