Кажется, я не могу вернуть какие-либо значимые результаты поиска, когда выполняю поиск в каталоге для ключа восстановления BitLocker.
DirectoryEntry entry = new DirectoryEntry("LDAP://OU=MYOU,DC=MYDC", adminUsername,
adminPassword);
entry.Username = AdminInformation.AdminUsername;
entry.Password = AdminInformation.AdminPassword;
DirectorySearcher search = new DirectorySearcher(entry);
search.PropertiesToLoad.Add("msFVE-RecoveryPassword");
search.Filter = $"(&(cn={chosenComputer}))";
foreach (SearchResult res in result)
{
textBoxBitLockerKey.Text = (res.Properties["msFVE-RecoveryPassword"][0].ToString());
}
В основном я заполнил список компьютерами, которые содержали бы ключ BitLocker (мыесть только ноутбуки, которые используют BitLocker в нашей организации).После того, как пользователь выберет ноутбук, соответствующий ключ BitLocker должен быть заполнен в текстовом поле, которое он может скопировать или распечатать, но каждый раз, когда я пытаюсь получить этот ключ с выбранного компьютера, я продолжаю получать исключение «вне границ».Я использовал DirectorySearcher для поиска других свойств, таких как учетная запись пользователя или имя компьютера, но это доставляет мне проблемы.Я понимаю, в чем ошибка, я просто не знаю, что ее вызывает, и я не могу найти других ответов, которые бы полностью охватили эту тему.Любой вклад приветствуется.
Вот исключение: индекс был вне диапазона.Должен быть неотрицательным и меньшим, чем размер коллекции.Имя параметра: index.
При дальнейшем исследовании выясняется, что средство поиска каталогов ищет только те свойства, которые инкапсулируют свойство msFVE-RecoveryInformation.Если я попытаюсь добавить фильтр на основе выбранного имени компьютера, он не предоставит свойству SearchResult фактическое значение.Например, если я пытаюсь установить фильтр на основе «cn», он возвращает GUID для ключа BitLocker.