<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[непредсказуемое поведение LDAP-синхронизации в CMS во время автоматизации]]></title><description><![CDATA[<p dir="auto">CMS (сервер Cisco Meeting Server) версии 3.11 демонстрирует непредсказуемое поведение синхронизации LDAP во время выполнения скриптов PowerShell Здравствуйте, При настройке CMS и интеграции LDAP я заметил, что нет автоматической синхронизации для обновления информации об учетных записях пользователей. Чтобы решить эту проблему, я написал скрипт PowerShell для выполнения синхронизации. Однако я столкнулся со странной проблемой: даже если я указываю один ID источника LDAP, скрипт синхронизирует 4 случайных источника LDAP из 8 доступных. Он полностью игнорирует указанный мной ID. Еще более странно, что если я задаю скрипту все 8 идентификаторов источников LDAP, он проходит по всем из них, но для каждого идентификатора выполняет точно такое же действие, как и в случае, когда задан только один идентификатор (синхронизирует те же 4 случайных источника). Что может быть причиной такого поведения?</p>
]]></description><link>https://sla247.ru/forum/topic/1170/непредсказуемое-поведение-ldap-синхронизации-в-cms-во-время-автоматизации</link><generator>RSS for Node</generator><lastBuildDate>Thu, 14 May 2026 20:47:54 GMT</lastBuildDate><atom:link href="https://sla247.ru/forum/topic/1170.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Feb 2026 18:42:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to непредсказуемое поведение LDAP-синхронизации в CMS во время автоматизации on Mon, 16 Feb 2026 18:42:12 GMT]]></title><description><![CDATA[<h1>Вот сценарий: $uri</h1>
<h1>"<a href="https://cms.my.domain:8443/api/v1/ldapSyncs" rel="nofollow ugc">https://cms.my.domain:8443/api/v1/ldapSyncs</a>"<br />
$apiUser</h1>
<h1>'admin'<br />
$apiPass</h1>
<h1>'password'<br />
$ldapSourceID</h1>
<p dir="auto">(<br />
"1"</p>
<h1></h1>
<p dir="auto">"2"<br />
,</p>
<h1></h1>
<p dir="auto">"3"<br />
,</p>
<h1></h1>
<p dir="auto">"4"<br />
,</p>
<h1></h1>
<p dir="auto">"5"<br />
,</p>
<h1></h1>
<p dir="auto">"6"<br />
,</p>
<h1></h1>
<p dir="auto">"7"</p>
<h1></h1>
<p dir="auto">"8"</p>
<h1></h1>
<h1>)<br />
$tenantID</h1>
<h1>""<br />
$pair</h1>
<h1>"$apiUser`:$apiPass"<br />
$sec</h1>
<h2>ConvertTo</h2>
<h2>SecureString $apiPass</h2>
<h2>AsPlainText</h2>
<h1>Force $info</h1>
<h2>New</h2>
<h1>Object System<br />
.<br />
Management<br />
.<br />
Automation<br />
.<br />
PSCredential<br />
(<br />
$apiUser<br />
,<br />
$sec<br />
)<br />
$encoded</h1>
<h1>[<br />
Convert<br />
]<br />
:<br />
:<br />
ToBase64String<br />
(<br />
[<br />
System<br />
.<br />
Text<br />
.<br />
Encoding<br />
]<br />
:<br />
:<br />
UTF8<br />
.<br />
GetBytes<br />
(<br />
$pair<br />
)<br />
)<br />
[<br />
Net<br />
.<br />
ServicePointManager<br />
]<br />
:<br />
:<br />
SecurityProtocol</h1>
<h1>[<br />
Net<br />
.<br />
SecurityProtocolType<br />
]<br />
:<br />
:<br />
Tls12 foreach<br />
(<br />
$id<br />
in<br />
$ldapSourceID<br />
)<br />
{<br />
$syncPayload</h1>
<h1>@<br />
{<br />
tenant</h1>
<h1>@<br />
{<br />
id</h1>
<h1>$tenantID<br />
}<br />
ldapSource</h1>
<h1>@<br />
(<br />
@<br />
{<br />
id</h1>
<h1>$id<br />
}<br />
)<br />
removeWhenFinished</h1>
<h1>$<br />
false<br />
}<br />
$syncPayloadJson</h1>
<h2>$syncPayload<br />
|<br />
ConvertTo</h2>
<h2>Json</h2>
<h1>Depth<br />
3<br />
$response</h1>
<h2>Invoke</h2>
<h2>WebRequest</h2>
<h2>Uri $uri</h2>
<h2>Credential $info</h2>
<h2>Method Post</h2>
<h2>Body $syncPayloadJson</h2>
<h2>UseBasicParsing<br />
:<br />
$<br />
true<br />
Write</h2>
<h1>Host<br />
"TRIGERIUKAS source $id"<br />
}<br />
$job</h1>
<h2>(<br />
$response<br />
.<br />
Content<br />
|<br />
ConvertFrom</h2>
<h1>Json<br />
)<br />
$jobID</h1>
<h2>$job<br />
.<br />
id<br />
do<br />
{<br />
Write</h2>
<h2>Host<br />
"Nu....."<br />
Start</h2>
<h2>Sleep</h2>
<h1>Seconds<br />
5<br />
$statusResp</h1>
<h2>Invoke</h2>
<h2>WebRequest</h2>
<h2>Uri<br />
"$uri/$jobId"</h2>
<h2>Credential $info</h2>
<h2>UseBasicParsing #Write</h2>
<h1>Host<br />
"TEST: [$($statusResp.Content)]"<br />
$statusXml</h1>
<h1>[<br />
xml<br />
]<br />
$statusResp<br />
.<br />
Content $status</h1>
<h1>$statusXml<br />
.<br />
ldapSyncs<br />
.<br />
ldapSync<br />
[<br />
0<br />
]<br />
.<br />
state $count</h1>
<h1>[<br />
int<br />
]<br />
$statusXml<br />
.<br />
ldapSyncs<br />
.<br />
ldapSync<br />
[<br />
0<br />
]<br />
.<br />
numUsersImported $sourcesCompleted</h1>
<h2>[<br />
int<br />
]<br />
$statusXml<br />
.<br />
ldapSyncs<br />
.<br />
ldapSync<br />
[<br />
0<br />
]<br />
.<br />
numLdapSourcesComplete<br />
if<br />
(<br />
$usersImported</h2>
<h1>gt<br />
0<br />
)<br />
{<br />
$lastCount</h1>
<h2>$usersImported<br />
}<br />
#Write</h2>
<h2>Host<br />
"Current sync status: $status, users imported: $count, sources complete: $sourcesComplete"<br />
}<br />
while<br />
(<br />
$status</h2>
<h2>eq<br />
"inProgress"<br />
)<br />
Write</h2>
<p dir="auto">Host<br />
"Status of sync: $status, users imported/updated: $lastCount, sources used/completed: $sourcesComplete"</p>
]]></description><link>https://sla247.ru/forum/post/8242</link><guid isPermaLink="true">https://sla247.ru/forum/post/8242</guid><dc:creator><![CDATA[Smile1]]></dc:creator><pubDate>Mon, 16 Feb 2026 18:42:12 GMT</pubDate></item><item><title><![CDATA[Reply to непредсказуемое поведение LDAP-синхронизации в CMS во время автоматизации on Mon, 16 Feb 2026 18:42:11 GMT]]></title><description><![CDATA[<h1>Вот обновленная информация по этой проблеме: я выявил проблему и реализовал решение. Основная причина была связана с тем, как Cisco Meeting Server (CMS) обрабатывает определенные параметры в запросах API, такие как LDAP ID или информация о арендаторе. CMS, похоже, полностью игнорирует эти значения. Исходя из моего текущего уровня навыков, я не смог найти способ заставить CMS принять или обработать предоставленную мной информацию. При анализе поведения API вы заметите, что даже аутентификация не выполняется напрямую через сам API — мне пришлось использовать параметр -Credentials. Поняв суть проблемы, я осознал, что большая часть исходного скрипта была ненужной, поэтому удалил ее значительную часть. Обновленный скрипт теперь выполняет следующее: Входит в CMS<br />
Запускает запрос на синхронизацию<br />
Автоматически извлекает все доступные источники LDAP и их идентификаторы<br />
Синхронизирует все источники за один проход<br />
Удаляет собственную<br />
запись журнала<br />
синхронизации LDAP из /api/v1/ldapSyncs после завершения (это<br />
не<br />
удаляет никаких пользователей — удаляется только запись журнала, чтобы предотвратить заполнение списка, если автоматическая синхронизация выполняется несколько раз в день) Вы можете увидеть результаты синхронизации только в журналах интерфейса администратора CMS, если не создадите отдельный скрипт для отслеживания хода синхронизации. Мне эта функция не понадобилась, поэтому я ее не включил. Важное примечание: если хотя бы один источник LDAP не может быть синхронизирован вручную (например, CMS не может подключиться к серверу LDAP), скрипт прервет работу на этом источнике. После сбоя он прекращает обработку остальных источников. Например, если у вас есть 10 источников и третий из них недоступен, скрипт остановится на третьем и не будет продолжать работу с остальными. После того как я удалил временно недоступный источник, скрипт смог без проблем синхронизировать все остальные источники LDAP. $uri</h1>
<h1>"<a href="https://cms.my.domain:8443/api/v1/ldapSyncs" rel="nofollow ugc">https://cms.my.domain:8443/api/v1/ldapSyncs</a>"<br />
$apiUser</h1>
<h1>'admin'<br />
$apiPass</h1>
<h1>'password'<br />
$sec</h1>
<h2>ConvertTo</h2>
<h2>SecureString $apiPass</h2>
<h2>AsPlainText</h2>
<h1>Force<br />
$info</h1>
<h2>New</h2>
<h1>Object System<br />
.<br />
Management<br />
.<br />
Automation<br />
.<br />
PSCredential<br />
(<br />
$apiUser<br />
,<br />
$sec<br />
)<br />
[<br />
Net<br />
.<br />
ServicePointManager<br />
]<br />
:<br />
:<br />
SecurityProtocol</h1>
<h1>[<br />
Net<br />
.<br />
SecurityProtocolType<br />
]<br />
:<br />
:<br />
Tls12 $response</h1>
<h2>Invoke</h2>
<h2>WebRequest</h2>
<h2>Uri $uri</h2>
<h2>Credential $info</h2>
<h2>Method Post</h2>
<h2>UseBasicParsing<br />
:<br />
$<br />
true<br />
Write</h2>
<h2>Host<br />
"taking in LDAP..."<br />
do<br />
{<br />
Write</h2>
<h2>Host<br />
"Cheking..."<br />
Start</h2>
<h2>Sleep</h2>
<h1>Seconds<br />
1<br />
$statusResp</h1>
<h2>Invoke</h2>
<h2>WebRequest</h2>
<h2>Uri<br />
"$uri"</h2>
<h2>Credential $info</h2>
<h2>UseBasicParsing<br />
}<br />
while<br />
(<br />
$status</h2>
<h2>eq<br />
"inProgress"<br />
)<br />
Write</h2>
<h2>Host<br />
"Status of sync: Finished"<br />
if<br />
(<br />
$status</h2>
<h2>eq<br />
"failed"<br />
)<br />
Write</h2>
<p dir="auto">Host<br />
"Status of sync: BAD" Если эта информация была вам полезна или помогла решить подобную проблему, не стесняйтесь оставлять комментарии или отзывы — ваши отзывы помогают другим пользователям легче найти решение.</p>
]]></description><link>https://sla247.ru/forum/post/8241</link><guid isPermaLink="true">https://sla247.ru/forum/post/8241</guid><dc:creator><![CDATA[Smile1]]></dc:creator><pubDate>Mon, 16 Feb 2026 18:42:11 GMT</pubDate></item></channel></rss>