Get-ADUser задержка поиска между лесами - PullRequest
0 голосов
/ 24 апреля 2020

В PowerShell я пытаюсь выполнить поиск ADUser между лесами, используя Get-ADUser с filter, используя один из атрибутов имени, таких как givenname и surname или employeeid и с Measure-Command Я вижу, что поиск между лесами быстрее, если не указан порт G C. Насколько я понимаю, G C предназначен для гораздо более быстрого получения результатов.

Пожалуйста, ознакомьтесь с моими Measure-Command результатами испытаний ниже,

GetADUser-MeasureCommand-results

Запросы:

  1. Почему результаты G C медленнее в данном примере? Это из-за поиска между лесами?
  2. Работает ли параметр Get-ADUser filter для некоторых атрибутов быстрее, чем для других, например, имеет какой-то порядок приоритета атрибутов AD?
  3. Возможно ли, что в некоторых случаях последовательный поиск в лесу будет быстрее? (с функциями кэширования)

Любая информация или ссылки высоко ценятся.

1 Ответ

2 голосов
/ 24 апреля 2020

Насколько я понимаю, G C предназначен для гораздо более быстрого получения результатов.

G C предназначен для поиска результатов во всем лесу AD без необходимости запросить каждый домен в отдельности. Если в вашем лесу есть только один домен, то на самом деле нет никакой причины использовать G C, и есть причины , а не использовать его (поскольку не все атрибуты реплицируются в G C, как employeeID).

  1. Почему результаты 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, как вы делали в другом вопросе. У вас гораздо больше контроля над тем, что происходит.

...