none
Инструментарий удаления призрачных объектов (Lingering objects) RRS feed

  • Вопрос

  • Доброе врямя суток.
    Имеется домен, териториально размазан по стране.
    Все разбито на сайты, с подсетями, графиком реплик и тд.
    Атрибуты:
    tombstoneLifetime = 60
    garbageCollperiod = 12

    Периодически возникают призрачные объекты по причине того, что многие ДК настроены и находятся на складе, вводятся в эксплуатацию через месяц  и тд., кроме того могут длительное время отсутствовать каналы связи из-за перезда офиса например.
    Удалять их с помощью repadmin и ldp удалять большое кол-во муторно и нецелесообразно.
    Скрипт для большого количества  Lingering objects указаный в статье , тоже ресурсоемкий и требует вмешательства рук.
    Как можно автоматизировать процес удаления объектов? Например готовый скрипт засунуть в планировщик и выполнять раз в неделю, например?
    И так сабж... Кто как борется с непрошеными "призраками"?


    Это Вам не с носорогами через скакалку прыгать!
    23 апреля 2009 г. 13:51

Ответы

  • Это вполне подойдёт для переодического задания
    работает начиная с 2000 sp4, заускать лучше в центре звезды
    для начала надо активировать ограничения репликации для фантомов

    repadmin.exe /regkey * +strict

    затем подготовить два файла

    servers.txt - список контроллеров домена для поиска фантомов

    пример:
    BAD-DC2.ADCORP.LAN
    BAD-DC1.ADCORP.LAN

    part.txt -  список доменных партиций и через точку с запятой GUID контроллера домена обслуживающий этот контекст

    пример:
    DC=ADCORP,DC=LAN;ed0c6601-28c1-47e9-b3db-5dcf291d9e31
    DC=ADCORP1,DC=LAN;ed0c6501-28c1-47e9-b3db-5dcf281e9e30

    далее выполнить
    for /f "tokens=1,2 delims=;" %a in (part.txt) do for /f %i in (servers.txt) do  @REPADMIN /REMOVELINGERINGOBJECTS %i %b %a

    подробнее тут
    http://blogs.dirteam.com/blogs/jorge/archive/2006/05/08/Lingering-objects.aspx

    • Помечено в качестве ответа AndricoRusEditor 18 января 2013 г. 9:39
    29 октября 2010 г. 11:42

Все ответы

  • Так может быть, в вашем случае целесообразно увеличить tombstone lifetime?

    http://technet.microsoft.com/en-us/library/dd392260.aspx

    23 апреля 2009 г. 13:59
    Модератор
  • Сегодня исправил с 180 дней на 60....как показала практика, чем больше время жизни захоронения, тем больше призраков в CN=Deleted Objects =(
    непомогает...

    Это Вам не с носорогами через скакалку прыгать!
    23 апреля 2009 г. 14:02
  • Т. е у вас некоторые DC отсутствуют в сети больше полугода?

    24 апреля 2009 г. 4:13
    Отвечающий
  • Нет, но за период пока ДК находится в офлайне произходит много изменений и удалений объектов... которые вылазят боком в виде  Lingering objects.
    Это Вам не с носорогами через скакалку прыгать!
    28 апреля 2009 г. 6:32
  • Воспользуйтесь утилитой Repadmin . Для автоматизации процесса сделайте bat-файл и запускайте его при помощи планировщика.
    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт
    28 апреля 2009 г. 10:05
    Модератор
  • Топология звезда.
    Тоесть при возникновини призрачных объектов в связи форпоста и регионального сервера ..нужно выполнять команду repadmin  с указанием DNов и тд....  тоесть создать 300+ батников и засунуть в шедулер?) Но это уже не похоже на автоматизацию.
    Одно из правил : Автоматизируй все что делается больше 2 раз.
    Вот и создание батников надо автоматизироватЬ)
    ИМХО не выход.

    Это Вам не с носорогами через скакалку прыгать!
    • Изменено NTFrs 8 мая 2009 г. 11:05
    • Предложено в качестве ответа jlee11 29 октября 2010 г. 11:42
  • 300 батников потребуется. если у вас 300 контроллеров...

    To use Repadmin to remove lingering objects
    1. At a command prompt, type the following command, and then press ENTER:

      repadmin /removelingeringobjects ServerName ServerGUID DirectoryPartition /advisory_mode

       

      Term Definition

      ServerName

      The DNS name or the distinguished name of the domain controller that has or might have lingering objects.

      ServerGUID

      The GUID of a domain controller that has an up-to-date writable replica of the directory partition

      DirectoryPartition

      The distinguished name of the domain directory partition that might have lingering objects. For example, DC=RegionalDomainName ,DC=ForestRootDomainName ,DC=com. Also run the command against the configuration directory partition (CN=configuration,DC=ForestRootDomainName ,DC=com), the schema directory partition (CN=schema,CN=configuration,DC=ForestRootDomainName ), and any application directory partitions that are hosted on the domain controller you are checking for lingering objects.

      /advisory_mode logs the lingering objects that will be removed so that you can review them, but it does not remove them.

    2. If lingering objects are found, repeat step 1 without /advisory_mode to delete the identified lingering objects from the directory partition.

    3. Repeat steps 1 and 2 for every domain controller that might have lingering objects.


    Если у вас есть 300+ контроллеров домена, то вам действительно проще будет использовать приведенный выше скрипт.
    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт
    Модератор
  • Контроллеров действительно много..на текущий момент 312.
    Скприпт с в исполнении Майкрософт...как минимум не эргономичный...
    Ответа все-таки нет(

    Это Вам не с носорогами через скакалку прыгать!
  • Боюсь, что конкретно по оптимизации скрипта вам мало кто сможет здесь подсказать. Автоматизировать его проще всего, создав bat-файл с командой запуска скрипта, размещенного на общедоступной шаре и распространить этот батник по всем серверам, назначив ему запуск по расписанию. Подробнее по конкретной методике оптимизации и доработки скрипта лучше всего спросить на http://code.msdn.microsoft.com/CodeGallery/Thread/List.aspx
    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт
    Модератор
  • Попробуйте организовать запуск repadmin на домен-контроллерах через удаленный запуск процесса, например, с помощью psexec. При этом вывод информации будет перенаправлен на локальный компьютер. Список включенных домен-контроллеров можно будет подавать в psexec из файла. И хотя такой скрипт будет работать долго, поддерживать его и выполнять разбор ошибок, на мой взгляд, будет легче. 
    Модератор
  • Это вполне подойдёт для переодического задания
    работает начиная с 2000 sp4, заускать лучше в центре звезды
    для начала надо активировать ограничения репликации для фантомов

    repadmin.exe /regkey * +strict

    затем подготовить два файла

    servers.txt - список контроллеров домена для поиска фантомов

    пример:
    BAD-DC2.ADCORP.LAN
    BAD-DC1.ADCORP.LAN

    part.txt -  список доменных партиций и через точку с запятой GUID контроллера домена обслуживающий этот контекст

    пример:
    DC=ADCORP,DC=LAN;ed0c6601-28c1-47e9-b3db-5dcf291d9e31
    DC=ADCORP1,DC=LAN;ed0c6501-28c1-47e9-b3db-5dcf281e9e30

    далее выполнить
    for /f "tokens=1,2 delims=;" %a in (part.txt) do for /f %i in (servers.txt) do  @REPADMIN /REMOVELINGERINGOBJECTS %i %b %a

    подробнее тут
    http://blogs.dirteam.com/blogs/jorge/archive/2006/05/08/Lingering-objects.aspx

    • Помечено в качестве ответа AndricoRusEditor 18 января 2013 г. 9:39
    29 октября 2010 г. 11:42