Добрый день, коллеги.
Платформа 8.3.13.1644, 8.2.12
Почему-то ПользователиОС() возвращает таблицу значений с массивами с ограничением в 100 пользователей. Но инфы этого ньюанса нигде нет!
Получается, что имя пользователя домена нужно вводить вручную (пользователей около 300).
Прикол в том, что этом механизм используется во всех типовых базах! Добавляешь пользователя, указываешь авторизацию ОС, а пользователя выбрать не даёт! Мда...
(1) А не может это быть настройкой домена (параметр MaxPageSize)?
MaxPageSize - This value controls the maximum number of objects that are returned in a single search result, independent of how large each returned object is. To perform a search where the result might exceed this number of objects, the client must specify the paged search control. This is to group the returned results in groups that are no larger than the MaxPageSize value. To summarize, MaxPageSize controls the number of objects that are returned in a single search result.
2.
SedovSU@mail.ru
29811.03.19 10:48 Сейчас в теме
Вот у меня такая платформа стоит, у нас 5 доменов, в каждом домене не по одной тысячи пользователей. возвращает все как надо. без каких либо ограничений
(9) При использовании в тонком клиенте, информация возвращается в виде массива структур со свойствами (аналогичными колонкам возвращаемой таблицы значений).
Попробуйте в толстом клиенте.
Но если получать пользователей так, то никаких ограничений нет:
Функция ПолучитьСписокПользователейВГруппеДомена (ИмяДомена, ИмяГруппы) Экспорт
Результат = Новый Массив();
objNameSpace = "";
Попытка
objNameSpace = ПолучитьCOMОбъект("WinNT://" + СокрЛП(ИмяДомена) + "/" + СокрЛП(ИмяГруппы) + ", Group");
Для каждого item Из objNameSpace.Members() Цикл
Результат.Добавить(item.Name);
КонецЦикла;
Исключение
Результат.Очистить();
КонецПопытки;
Возврат Результат;
КонецФункции
(19) Я бы уже давно что-нибудь придумал для своих доработок, но мне нужно разобраться, почему стандартный метод не работает, не буду же я все наши конфы модифицировать для вывода списка учетных записей пользователей...
Перефразирую - нужно разобраться, почему при открытии формы "ФормаВыбораПользователяWindows" во всех конфигурациях (и проверил на нескольких наших серваках) список пользователей ограничен ровно на 100 элементов.
Устаревшая функция ПользователиWindows() (она до сих пор используется в Альфа-авто 4 и5 редакций) также получает список с ограничением в 100 элементов.
(30)Не важно, какие настройки на сервере, важно что происходит на клиенте, работающем с LDAP. Т.к. клиент - платформа 1С, то в ее настройках MaxPageSize = 100.
(52) Не, проблема уже не актуальна, но на одном сервере я мог получить пользователей, а на другом нет, хотя платформа была одна. И админы всегда устанавливали её по дефолту.
кликнул на ссылку методическая информация
http://www.1centerprise.com/devlinks?C="id=00042O00053M04029;lan=ru"#!id=00042O00053M04029
а там: Сейчас нет методической информации для этого раздела.
29.
SedovSU@mail.ru
29815.03.19 09:01 Сейчас в теме
Вот у вас скорее всего точно стоит какое ограничение. Поэтому и получаете только 100 пользователей. Вы попробуйте самостоятельно открыть активдиректи и посмотреть на списки пользователей. Скорее всего вы там и увидите ваши только 100 пользователей
SWbemLocator = Новый COMОбъект("WbemScripting.SWbemLocator");
SWbemServices = SWbemLocator.ConnectServer();
МассивПользователей = SWbemServices.ExecQuery("sel ect * fr om Win32_UserAccount");
вопрос не в том, как получить корректный список пользователей, а почему не работает стандартная функция платформы.
ЗЫ: И у меня МассивПользователей.Count() = 399.
Имею точно такую же проблему, момент появления известен, но как ее решать не представляю:
Был домен функционального уровня 2008R2, все контроллеры также 2008R2. Сервера приложений 2008R2 и 2012R2. Добавился новый контроллер 2019, на него были перенесены все FSMO-роли. В логах нет ни ошибок, ни предупреждений.
Анализатор трафика подсказывает, что при открытии формы и выборе домена отправляется LDAP-запрос к контроллеру домена. Запрос обрабатывается корректно.
Список пользователей отправляется по SMB, согласование версии протокола проходит успешно и вот тут начинаются проблемы:
При отправке списка превышается размер буфера, размер устанавливается со стороны клиента (т. е. со стороны сервера приложений либо непосредственно клиента 1С, тестировал на одном серваке). Подробнее об этом здесь (microsoft.com)
Добавился новый контроллер 2019, на него были перенесены все FSMO-роли. В логах нет ни ошибок, ни предупреждений.
У нас такая же история.
Сменился сервер с ролью PDC Emulator с 2008R2 на 2016.
Сервера приложений установлены как на 2008R2, так и на 2016 и разницы никакой, те же 100 строк.
С настройками LDAP как только не крутили, но эффекта никакого.
Имею аналогичную проблему, Вычитывается ровно 100 пользователей. Причем дело точно не в ошибке, когда затыкается на одном пользователей, при изменении последнего пользователя, получаю следующего, но все равно ровно 100.
Как обойти ограничение?
Выяснил причину проблемы, она актуальна только для DC на Windows Server 2019. В реализации LDAP существуют проблемы при работе с памятью, Microsoft в курсе проблемы, хотфикс должен появиться в сентябре. Актуальная ветка technet.microsoft.com.
(41) Учитывая, что 1С добавляет пользователей по NetBIOS-именам, есть подозрение, что обращение идет именно к серверу с ролью PDC emulator, возможно этой ролью владеет Server 2019 в Вашем случае?
Согласно Microsoft 19 сентября появится хотфикс: September 19, 2019—KB4516077 (OS Build 17763.769)
(42)Данный хотфикс для win serv 2019. Аналогичный хотфикс для win serv 2016 существует? Потому что у нас все DC на 2016, а вышеуказанная проблема есть. Все последние апдейты стоят, но ситуация не меняется