Исключение при генерации поиска [Корзина для душевых объектов Active Directory] [DirectoryEntry]

Вопрос или проблема

Я пытаюсь получить информацию о удалённых объектах в Active Directory. Обычно эти объекты хранятся в корзине Active Directory. Я могу выполнять поиски с использованием класса DirectorySearcher, но когда я пытаюсь запросить класс DirectoryEntry с тем же путём, что и в DirectorySearcher, я сталкиваюсь с исключениями для всех полей.

String myADSPath = "LDAP://IP_SERVER/CN=HOSTNAME\0ADEL:GUID,CN=Deleted Objects,DC=adomain,DC=br";
DirectoryEntry myDirectoryEntry = new DirectoryEntry(myADSPath, username, password);
String test = myDirectoryEntry.Parent.Path;

вставьте описание изображения здесь

Я могу выполнить тот же запрос без каких-либо проблем, когда это касается активного объекта. Однако у меня возникают проблемы именно с удалёнными объектами. Я хотел бы узнать, есть ли какие-либо альтернативные методы для расследования этой проблемы. Возможно, существуют разрешения, которых у меня нет.

Я пытался получить информацию о удалённых объектах в Active Directory с использованием класса DirectorySearcher. Я ожидал успешно запросить удалённые объекты, хранящиеся в корзине Active Directory, что помогло бы мне разработать план восстановления этих объектов. Однако, когда я попытался использовать тот же путь из DirectorySearcher для запроса класса DirectoryEntry, я столкнулся с исключениями для всех полей.

Ответ или решение

Для получения информации о.deleted objects (удаленных объектах) в Active Directory, которые хранятся в корзине, необходимо учитывать некоторые особенности работы с объектами, помеченными для удаления.

Решение проблемы

  1. Проверьте разрешения: Убедитесь, что ваша учетная запись имеет необходимые права доступа для чтения удаленных объектов. Используйте учетную запись, обладающую правами администратора на уровне домена.

  2. Правильный способ доступа к удаленным объектам: При использовании DirectoryEntry для доступа к удаленным объектам, вы должны убедиться, что путь правильно сформирован. В вашем случае путь уже выглядит корректным, но попробуйте изменить его для лучшей читаемости:

    String myADSPath = "LDAP://IP_SERVER/CN=HOSTNAME\\0ADEL:GUID,CN=Deleted Objects,DC=adomain,DC=br";

    Обратите внимание на двойной обратный слеш перед 0ADEL.

  3. Обработка исключений: Обратите внимание на типы исключений, которые вы получаете. Часто это может быть связано с фактом, что удаленные объекты имеют не все атрибуты, доступные для активных объектов. Например, некоторые атрибуты могут отсутствовать или быть недоступными для чтения в состоянии «удалён». Убедитесь, что вы правильно обрабатываете исключения:

    try
    {
       DirectoryEntry myDirectoryEntry = new DirectoryEntry(myADSPath, username, password);
       String test = myDirectoryEntry.Parent.Path;
    }
    catch (DirectoryServicesCOMException ex)
    {
       // Обработайте конкретные ошибки здесь
       Console.WriteLine($"Ошибка доступа: {ex.Message}");
    }
  4. Запросы через DirectorySearcher: Если использование DirectoryEntry продолжает вызывать проблемы, попробуйте выполнить поиск через DirectorySearcher, который может предложить лучший способ для получения удаленных объектов:

    using (DirectorySearcher searcher = new DirectorySearcher())
    {
       searcher.Filter = "(objectClass=user)"; // Уточните фильтр по необходимым критериям
       searcher.SearchScope = SearchScope.Subtree; // Укажите необходимую область поиска
       searcher.SearchScope = System.DirectoryServices.SearchScope.Directory;
    
       try
       {
           SearchResultCollection results = searcher.FindAll();
           foreach (SearchResult result in results)
           {
               // Работайте с найденными результатами
           }
       }
       catch (Exception ex)
       {
           Console.WriteLine($"Ошибка поиска: {ex.Message}");
       }
    }

Заключение

Если проблема продолжает сохраняться, возможно, имеет смысл проверить настройки Active Directory и убедиться, что корзина для удаленных объектов действительно включена и доступна для вашего аккаунта. Возможно, стоит также обратиться к администратору сети для дополнительной информации о конфигурации доступа и прав на чтение информации из корзины.

Оцените материал
Добавить комментарий

Капча загружается...