Получение списка пользователей домена

1. triviumfan 92 11.03.19 09:49 Сейчас в теме +1 $m
Добрый день, коллеги.
Платформа 8.3.13.1644, 8.2.12

Почему-то ПользователиОС() возвращает таблицу значений с массивами с ограничением в 100 пользователей. Но инфы этого ньюанса нигде нет!
Получается, что имя пользователя домена нужно вводить вручную (пользователей около 300).
Прикол в том, что этом механизм используется во всех типовых базах! Добавляешь пользователя, указываешь авторизацию ОС, а пользователя выбрать не даёт! Мда...
Прикрепленные файлы:
adhocprog; +1 Ответить
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
46. triviumfan 92 05.02.20 09:22 Сейчас в теме
Проблема ушла, но точно не могу сказать когда, вероятно, что после обновления платформы на 8.3.16.
44. Umka-Bear 01.10.19 08:50 Сейчас в теме
в конечном итоге, после установки всех обновлений на 2016 сервер, все работает ;-) подтверждаю.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
4. EVKash 14 11.03.19 10:52 Сейчас в теме
(1) конфигурация не базовая случаем?
6. triviumfan 92 11.03.19 10:58 Сейчас в теме
14. dim_1c 11.03.19 13:31 Сейчас в теме
(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.

How to view and set LDAP policy in Active Directory by using Ntdsutil.exe
И здесь, к примеру, упоминается этот нюанс.
triviumfan; +1 Ответить
15. triviumfan 92 12.03.19 15:13 Сейчас в теме
(14) Как-то так... в общем так и не разобрались. 1000 это вообще значение по умолчанию.
Прикрепленные файлы:
2. SedovSU@mail.ru 297 11.03.19 10:48 Сейчас в теме
Вот у меня такая платформа стоит, у нас 5 доменов, в каждом домене не по одной тысячи пользователей. возвращает все как надо. без каких либо ограничений
3. SedovSU@mail.ru 297 11.03.19 10:49 Сейчас в теме
ВОт небольшой скрин в пару строк кода
Прикрепленные файлы:
adhocprog; triviumfan; +2 Ответить
5. triviumfan 92 11.03.19 10:58 Сейчас в теме
(3) Какой режим совместимости?
7. SedovSU@mail.ru 297 11.03.19 11:00 Сейчас в теме
8. triviumfan 92 11.03.19 11:03 Сейчас в теме
(7) У меня режим совместимости Версия 8.3.8
Количество 100 пользователей
Прикрепленные файлы:
10. SedovSU@mail.ru 297 11.03.19 11:04 Сейчас в теме
(8) сейчас тоже попробую сделать совместимость 8.3.8
9. triviumfan 92 11.03.19 11:04 Сейчас в теме
ПользователиОС() получает массив структур доменов, где в структуре лежит ещё один массив пользователей, но с ограничением в 100 элементов.
11. SedovSU@mail.ru 297 11.03.19 11:17 Сейчас в теме
(9) поставил режим совместимости 8.3.8 все равно вернул несколько тысяч пользователей, без ограничений
12. triviumfan 92 11.03.19 11:18 Сейчас в теме
(11) Может есть идеи с чем это связано? Опять шаманство с настройками сети?
13. SedovSU@mail.ru 297 11.03.19 11:24 Сейчас в теме
(12) Даже не подскажу, может папочки что ли почистить / кеши. Вообще такого быть не должно
16. triviumfan 92 12.03.19 15:24 Сейчас в теме
(13) Станислив, а не подскажите где именно чистить?
18. SedovSU@mail.ru 297 13.03.19 06:10 Сейчас в теме
(16) обычно это папки C:\Users\ИмяПользователя\AppData\Local\1C и C:\Users\ИмяПользователя\AppData\Roaming\1C
23. qazaas 13.03.19 13:34 Сейчас в теме
(9) При использовании в тонком клиенте, информация возвращается в виде массива структур со свойствами (аналогичными колонкам возвращаемой таблицы значений).
Попробуйте в толстом клиенте.
24. triviumfan 92 13.03.19 14:23 Сейчас в теме
(23) Пробовал и в тонком и в толстом.
17. triviumfan 92 12.03.19 17:53 Сейчас в теме
Но если получать пользователей так, то никаких ограничений нет:
Функция ПолучитьСписокПользователейВГруппеДомена (ИмяДомена, ИмяГруппы) Экспорт  
	Результат = Новый Массив(); 
	objNameSpace = "";  
	Попытка  
		objNameSpace = ПолучитьCOMОбъект("WinNT://" + СокрЛП(ИмяДомена) + "/" + СокрЛП(ИмяГруппы) + ", Group");
		Для каждого item Из objNameSpace.Members() Цикл   
			Результат.Добавить(item.Name);
		КонецЦикла; 
	Исключение  
		Результат.Очистить(); 
	КонецПопытки;  
	
	Возврат Результат;	
КонецФункции
Показать
adhocprog; +1 Ответить
19. FirePyres 70 13.03.19 09:09 Сейчас в теме
У нас в базе я пользователей из ActiveDirectory получаю, ни каких ограничений.
Где слямзил, не помню где.


&НаСервере
Процедура ОбновитьСписокПользователейActiveDirectoryНаСервере()

    ТЗ=Новый ТаблицаЗначений;
    АДСИ=Новый COMОбъект("ADSystemInfo");
    Контроллер=АДСИ.GetAnyDCName();
    Домен=АДСИ.DomainDNSName;
	
	//Пользователь="администратор@" + Домен;
	//Пароль="СуперпарольАдминистратора";

    ДСО=ПолучитьCOMОбъект("GC:");
    Корень=ДСО.OpenDSObject("GC://RootDSE", Пользователь, Пароль,1);
    Провайдер="Provider=ADSDSOObject;";

    ИмяДомена = "Infostart-Infostart";

    Соединение = Новый COMОбъект("ADODB.Connection");
    Соединение.Open(Провайдер);
	
	ТекстЗапроса = "<GC://DC="+ИмяДомена+",DC=com>;(sAMAccountName=*.*);AdsPath;subTree";
    Записи=Соединение.Execute(ТекстЗапроса);
	
	Пока Записи.EOF=0 Цикл
		obj = ПолучитьCOMОбъект(Записи.Fields(0).Value);
		ИмяПользователя = obj.displayName;
		ЛогинAD = obj.userPrincipalName;
		Запись = РегистрыСведений.ПользователиActiveDirectory.СоздатьМенеджерЗаписи();
		Запись.Логин = ЛогинAD;
		Запись.Прочитать();
		Запись.Логин = ЛогинAD;
		Запись.ИмяПользователя = ИмяПользователя;
		Запись.Записать();
        Записи.MoveNext();
    КонецЦикла;
КонецПроцедуры

Показать
DrZombi; adhocprog; +2 Ответить
20. triviumfan 92 13.03.19 11:33 Сейчас в теме
(19) Я бы уже давно что-нибудь придумал для своих доработок, но мне нужно разобраться, почему стандартный метод не работает, не буду же я все наши конфы модифицировать для вывода списка учетных записей пользователей...
adhocprog; +1 Ответить
21. triviumfan 92 13.03.19 11:38 Сейчас в теме
Перефразирую - нужно разобраться, почему при открытии формы "ФормаВыбораПользователяWindows" во всех конфигурациях (и проверил на нескольких наших серваках) список пользователей ограничен ровно на 100 элементов.
22. triviumfan 92 13.03.19 13:14 Сейчас в теме
Устаревшая функция ПользователиWindows() (она до сих пор используется в Альфа-авто 4 и5 редакций) также получает список с ограничением в 100 элементов.
25. triviumfan 92 14.03.19 10:17 Сейчас в теме
Есть тут грамотные сисадмины?
28. ligsht 12 14.03.19 15:41 Сейчас в теме
(25) У меня функция ПользователиWindows() и ПользователиОС() возвращает 237 пользователей. Платформа 8.3.10.2252
Если получить пользователей так objNameSpace = ПолучитьCOMОбъект("WinNT://" + СокрЛП(ИмяДомена) + "/" + СокрЛП(ИмяГруппы) + ", Group");
То вы получите пользователей локальной машины а не домена. В примере от FirePyres конкретно пример для домена. Ограничение на 100 пользователей это установлено в LDAP. Видимо стоят последние обновления.
https://www.oreilly.com/library/view/active-directory-cookbook/0596004648/ch04s08.html
https://www.oreilly.com/library/view/active-directory-cookbook/0596004648/ch04s24.html
30. triviumfan 92 15.03.19 11:10 Сейчас в теме
(28) MaxPageSize = 1000 по умолчанию, я выше скриншот показал (см. (15))
52. nomad_irk 71 06.07.23 09:59 Сейчас в теме
(30)Не важно, какие настройки на сервере, важно что происходит на клиенте, работающем с LDAP. Т.к. клиент - платформа 1С, то в ее настройках MaxPageSize = 100.
53. triviumfan 92 06.07.23 12:44 Сейчас в теме
(52) Не, проблема уже не актуальна, но на одном сервере я мог получить пользователей, а на другом нет, хотя платформа была одна. И админы всегда устанавливали её по дефолту.
26. makfromkz 35 14.03.19 12:33 Сейчас в теме
моих сисадминов в 1С на аркане не затащишь :)
27. makfromkz 35 14.03.19 12:45 Сейчас в теме
кликнул на ссылку методическая информация
http://www.1centerprise.com/devlinks?C="id=00042O00053M04029;lan=ru"#!id=00042O00053M04029
а там: Сейчас нет методической информации для этого раздела.
29. SedovSU@mail.ru 297 15.03.19 09:01 Сейчас в теме
Вот у вас скорее всего точно стоит какое ограничение. Поэтому и получаете только 100 пользователей. Вы попробуйте самостоятельно открыть активдиректи и посмотреть на списки пользователей. Скорее всего вы там и увидите ваши только 100 пользователей
31. LeXXik 15.03.19 13:51 Сейчас в теме
Платформа проклятая...
32. triviumfan 92 17.03.19 14:48 Сейчас в теме
Ответа так и не найден =\
33. ligsht 12 18.03.19 11:31 Сейчас в теме
Вот тут у человека подобная проблема https://powerusers.microsoft.com/t5/I-Found-A-Bug/get-group-members-returns-maximum-100-users/td-p/58256. Была еще подобная проблема при репликации пользователей. Оказалось что на 100-м пользователей происходила ошибка и поэтому программа получала только 100 пользователей.

Для начала было бы неплохо сравнить вашу версию AD и серверов с пользователем "SedovSU@mail.ru"
triviumfan; +1 Ответить
34. triviumfan 92 18.03.19 15:00 Сейчас в теме
но решения там так и нет.
(33)
вашу версию

2016
35. SlavaKron 18.03.19 15:12 Сейчас в теме
SWbemLocator = Новый COMОбъект("WbemScripting.SWbemLocator");
SWbemServices = SWbemLocator.ConnectServer();
МассивПользователей = SWbemServices.ExecQuery("sel ect * fr om Win32_UserAccount");
adhocprog; +1 Ответить
36. triviumfan 92 18.03.19 16:31 Сейчас в теме
(35)
SWbemLocator = Новый COMОбъект("WbemScripting.SWbemLocator");
SWbemServices = SWbemLocator.ConnectServer();
МассивПользователей = SWbemServices.ExecQuery("sel ect * fr om Win32_UserAccount");

вопрос не в том, как получить корректный список пользователей, а почему не работает стандартная функция платформы.
ЗЫ: И у меня МассивПользователей.Count() = 399.
37. rum 30.05.19 11:16 Сейчас в теме
Имею точно такую же проблему, момент появления известен, но как ее решать не представляю:
Был домен функционального уровня 2008R2, все контроллеры также 2008R2. Сервера приложений 2008R2 и 2012R2. Добавился новый контроллер 2019, на него были перенесены все FSMO-роли. В логах нет ни ошибок, ни предупреждений.
Анализатор трафика подсказывает, что при открытии формы и выборе домена отправляется LDAP-запрос к контроллеру домена. Запрос обрабатывается корректно.
Список пользователей отправляется по SMB, согласование версии протокола проходит успешно и вот тут начинаются проблемы:

SMB2 Ioctl Response, Error: STATUS_BUFFER_OVERFLOW Unknown (0x0000C017) Function:0x0000

При отправке списка превышается размер буфера, размер устанавливается со стороны клиента (т. е. со стороны сервера приложений либо непосредственно клиента 1С, тестировал на одном серваке). Подробнее об этом здесь (microsoft.com)

SAMR QueryDisplayInfo response, STATUS_UNSUCCESSFUL, Error: STATUS_UNSUCCESSFUL

В итоге контроллер домена отвечает неудачей, все сессии после этого закрываются как положено.
adhocprog; +1 Ответить
39. kima87 29.07.19 15:38 Сейчас в теме
(37)
Добавился новый контроллер 2019, на него были перенесены все FSMO-роли. В логах нет ни ошибок, ни предупреждений.

У нас такая же история.
Сменился сервер с ролью PDC Emulator с 2008R2 на 2016.
Сервера приложений установлены как на 2008R2, так и на 2016 и разницы никакой, те же 100 строк.
С настройками LDAP как только не крутили, но эффекта никакого.
adhocprog; +1 Ответить
38. goro2205 26.06.19 16:30 Сейчас в теме
Имею аналогичную проблему, Вычитывается ровно 100 пользователей. Причем дело точно не в ошибке, когда затыкается на одном пользователей, при изменении последнего пользователя, получаю следующего, но все равно ровно 100.
Как обойти ограничение?
40. rum 30.08.19 12:40 Сейчас в теме
Выяснил причину проблемы, она актуальна только для DC на Windows Server 2019. В реализации LDAP существуют проблемы при работе с памятью, Microsoft в курсе проблемы, хотфикс должен появиться в сентябре. Актуальная ветка technet.microsoft.com.
adhocprog; triviumfan; +2 Ответить
41. triviumfan 92 02.09.19 09:57 Сейчас в теме
(40) Благодарю за ответ! Думал тема умерла...
Но у нас и на Windows Server 2016 и на 2019 - везде не работает.
42. rum 12.09.19 11:25 Сейчас в теме
(41) Учитывая, что 1С добавляет пользователей по NetBIOS-именам, есть подозрение, что обращение идет именно к серверу с ролью PDC emulator, возможно этой ролью владеет Server 2019 в Вашем случае?
Согласно Microsoft 19 сентября появится хотфикс: September 19, 2019—KB4516077 (OS Build 17763.769)
45. posix86749 23.10.19 09:53 Сейчас в теме
(42)Данный хотфикс для win serv 2019. Аналогичный хотфикс для win serv 2016 существует? Потому что у нас все DC на 2016, а вышеуказанная проблема есть. Все последние апдейты стоят, но ситуация не меняется
43. user831542 12.09.19 13:08 Сейчас в теме
(41)

На Контроллере домена 2016 всё заработало. Проверено в 1С только что))
44. Umka-Bear 01.10.19 08:50 Сейчас в теме
в конечном итоге, после установки всех обновлений на 2016 сервер, все работает ;-) подтверждаю.
46. triviumfan 92 05.02.20 09:22 Сейчас в теме
Проблема ушла, но точно не могу сказать когда, вероятно, что после обновления платформы на 8.3.16.
47. ChessCat 10.03.21 15:50 Сейчас в теме
(46)
Проблема ушла, но точно не могу сказать когда, вероятно, что после обновления платформы на 8.3.16


На релизе 8.3.17 проблема актуальна.

Бухгалтерия предприятия, редакция 3.0 (3.0.85.25)

1С:Предприятие 8.3 (8.3.17.1851)
48. triviumfan 92 10.03.21 16:29 Сейчас в теме
(47) На 8.3.18.1289 и проблем нету.
49. ChessCat 11.03.21 13:44 Сейчас в теме
(48)
На 8.3.18.1289 и проблем нету.


А на более низких релизах 1С были ?

Только релиз 1С поднимали или еще заплатки на сервер контроллер домена ставили ?
50. triviumfan 92 29.03.21 14:16 Сейчас в теме
(49) все подряд, уже не помню последовательности, да и сервер с того времени уже обновился.
51. asinst 06.07.23 09:30 Сейчас в теме
1С:Предприятие 8.3 (8.3.20.2184)
После установки последних обновлений на 2019 список пользователей начал выводиться полностью (больше 100).
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)