Насколько я понимаю, G C предназначен для гораздо более быстрого получения результатов.
G C предназначен для поиска результатов во всем лесу AD без необходимости запросить каждый домен в отдельности. Если в вашем лесу есть только один домен, то на самом деле нет никакой причины использовать G C, и есть причины , а не использовать его (поскольку не все атрибуты реплицируются в G C, как employeeID
).
- Почему результаты G C медленнее в данном примере? Это из-за поиска между лесами?
Есть много причин, по которым это может быть медленнее. Он может быть просто занят в тот момент, когда вы выполнили запрос. Я мог поразить другой сервер по разным запросам (вот где вступает в игру предложение Матиаса). Если у вас в домене AD более одного домена, то G C - это просто большая база данных.
Если она возвращает больше результатов от G C, чем от D C, то это, безусловно, сделало бы это (из-за того, как Get-ADUser
возвращает результаты). Но ваши поиски, похоже, должны давать только один результат.
Работает ли Get-ADUser
filter
параметр для некоторых атрибутов быстрее, чем для других, например, имеет некоторый порядок приоритета атрибутов AD?
Это не указано c до Get-ADUser
, но только как работает AD. Некоторые атрибуты индексируются, что ускоряет запросы (как и любая база данных). Некоторые атрибуты не являются. Имя и фамилия индексируются, employeeID
и extensionAttribute11
- нет (это означает, что для поиска совпадения необходимо просмотреть каждую учетную запись пользователя). Вы можете сэкономить немного времени, если вы используете параметр -ResultSetSize
и установите его на 1
. Таким образом, AD знает, что ему нужно только найти один результат, и перестанет смотреть после того, как найдет один. Это может не иметь никакого заметного эффекта.
Возможно ли, что в некоторых случаях последовательный поиск в лесу будет быстрее? (с функциями кэширования)
Да. Я видел это сам. Последующие идентичные запросы будут намного быстрее. Опять же, вполне нормально, что любая база данных ведет себя так.
Если вы беспокоитесь о производительности, я бы остановился на использовании DirectorySearcher
, как вы делали в другом вопросе. У вас гораздо больше контроля над тем, что происходит.