Вступ
Об'єкти, які зберігаються в Службі Active Directory, можуть стати застарілими, пошкодженими або загубленими через конфлікти реплікації.
У цій статті описано об'єкти довіри, які можна визначити бітом "INTERDOMAIN_TRUST_ACCOUNT" в атрибуті userAccountControl . Докладні відомості про цей біт див. в статті UserAccountControl Bits.
Ознаки
Довірчі зв'язки представлено в Службі Active Directory, виконавши такі дії:
-
Обліковий запис користувача, прикріплений символом $ у кінці.
-
Надійний об'єкт домену (TDO), що зберігається в системному контейнері розділу каталогу домену.
Під час створення повторюваних довірених об'єктів буде створено два об'єкти з повторюваними іменами облікових записів диспетчера облікових записів безпеки (SAM). У другому об'єкті SAM вирішує конфлікт, перейменувавши об'єкт на $DUPLICATE-<account RID>. Не вдалося видалити повторюваний об'єкт і він стає "загубленим".
Нотатка Об'єкт Active Directory, як кажуть, "загублено", коли він представляє динамічний дочірній об'єкт, який зберігається в Active Directory, батьківський контейнер якого відсутній. Цей термін також іноді використовується для посилання на застарілий або пошкоджений об'єкт у службі Active Directory, який не можна видалити за допомогою звичайного робочого циклу.
Є два основні застарілі сценарії довіри:
-
Сценарій 1. Надійний користувач у стані конфлікту
Можливо, надійного користувача доведеться видалити в сценаріях, коли між доменами в цих лісах раніше було створено два ліси, а між доменами – довірчий. Під час першого створення довіри виникла проблема, яка перешкоджала реплікації. Можливо, адміністратор передав або захопив роль гнучкого контролера домену (PDC) (FSMO) і знову створив довіру на іншому контролері домену.
Пізніше, коли реплікація Active Directory знову з'явиться, два надійних користувачів буде реплікувати до одного контролера домену, викликаючи конфлікт іменування. Об'єкту trust user буде призначено конфлікт (CNF)-mangled DN; наприклад:
CN=contoso$\0ACNF:a6e22a25-f60c-4f07-b629-64720c6d8b08,CN=Users,DC=northwindsales,DC=com
Ім'я samAccountName також з'явиться заплутаним:
$DUPLICATE-3159f
Об'єкт без конфлікту імен матиме нормальний вигляд і функціонуватиметься належним чином. Ви можете видалити та повторно створити довіру.
-
Сценарій 2. Надійний користувач загублений
Так само, як і в сценарії 1, може знадобитися змінити або видалити надійного користувача, якщо надійний партнер більше не існує, але надійний користувач залишається в базі даних Active Directory. Зазвичай пароль для цих облікових записів старіє, тому цей обліковий запис позначається засобами перевірки безпеки.
Повідомлення про помилки, коли адміністратор намагається змінити атрибути довіри
Змінити ключові атрибути або видалити загублений об'єкт довіреного користувача неможливо. Після спроби змінити атрибути, які захищають об'єкт, відображається така помилка:
Діалогове вікно "Помилка" |
Повідомлення про помилку |
Не вдалося виконати операцію. Код помилки: 0x209a 0000209A: SvcErr: DSID-031A1021, проблема 5003 (WILL_NOT_PERFORM), дані 0 |
Коли адміністратор намагається видалити об'єкт, виникає помилка 0x5, що є еквівалентом "Немає доступу". Або конфліктний довірчий об'єкт може не відображатися в оснастки "Домени та довірчі зв'язки" служби Active Directory.
Діалогове вікно "Помилка" |
Повідомлення про помилку |
Не вдалося виконати операцію. Код помилки: 0x5
|
Причина
Ця проблема виникає тому, що довірчі об'єкти належать системі, і їх можуть змінювати або видаляти лише адміністратори, які використовують MMC доменів і довірених об'єктів Active Directory. Цю функцію розроблено за дизайном.
Вирішення
Після інсталяції оновлень Windows від 14 травня 2024 р. на контролерах домену під керуванням Windows Server 2019 або пізнішої версії Windows Server тепер можна видалити загублені довірені облікові записи за допомогою операції schemaUpgradeInProgress. Для цього виконайте такі дії:
-
Визначте загублений надійний обліковий запис користувача в домені. Наприклад, цей результат з LDP.exe; відображає позначку userAccountControl0x800 яка визначає надійного користувача:
Expanding base ' CN=northwindsales$,CN=Users,DC=contoso,DC=com'...
Отримання 1 запису:
Dn: CN=northwindsales$,CN=Users,DC=contoso,DC=com
…primaryGroupID: 513 = ( GROUP_RID_USERS );
pwdLastSet: 27.04.2013 10:03:05 Всесвітній координований час;
sAMAccountName: NORTHWINDSALES$;
sAMAccountType: 805306370 = ( TRUST_ACCOUNT );
userAccountControl: 0x820 = ( PASSWD_NOTREQD | INTERDOMAIN_TRUST_ACCOUNT )
;… -
За потреби додайте обліковий запис адміністратора домену з застарілого домену надійних облікових записів до групи "Адміністратори схем" у кореневому домені лісу. (Обліковий запис, який використовується для видалення, повинен мати доступ елемента керування "Control-Schema-Master" безпосередньо в кореневій частині репліки Schema NC AND, щоб мати змогу ввійти до контролера домену, який має відірваний обліковий запис.)
-
Переконайтеся, що оновлення Windows від 14 травня 2024 р. або пізнішої версії інстальовано на постійному струмі, придатному для записування, у застарілому домені надійних облікових записів.
-
Увійдіть до цього контролера домену за допомогою облікового запису адміністратора схеми. Якщо на кроці 2 ви додали обліковий запис до групи "Адміністратори схем", скористайтеся цим обліковим записом.
-
Підготуйте файл імпорту LDIFDE , щоб змінити schemaUpgradeInProgress і видалити об'єкт.
Наприклад, текст нижче можна вставити у файл імпорту LDIFDE, щоб видалити об'єкт, визначений на кроці 1:dn:
changetype: modify
add: SchemaUpgradeInProgress
SchemaUpgradeInProgress: 1
-dn: CN=northwindsales$,CN=Users,DC=contoso,DC=com
changetype: deleteПідказки щодо синтаксису LDIFDE:
-
Рядок лише з дефісом ("-") має життєво важливе значення, оскільки завершує ряд змін під типом змінення "modify".
-
Пустий рядок після лінії з дефісом також має життєво важливе значення, оскільки LDIFDE відображає, що всі зміни в об'єкті завершено, і зміни мають бути затверджені.
-
-
Імпортуйте файл LDIFDE, використовуючи такий синтаксис:
ldifde /i /f nameOfLDIFFileCreatedInStep5.txt /j
Примітки
-
Параметр /i вказує на операцію імпорту.
-
Параметр /f і ім'я файлу позначає файл, який містить зміни.
-
Параметр /j, після якого йде шлях файлу logfile, записує ldif.log та файл ldif.err з результатами оновлення, чи працювала процедура, а якщо ні, то помилка, яка сталася під час mod.
-
Визначення періоду (".") за допомогою параметра /j буде записувати журнали в поточному робочому каталозі.
-
-
За потреби видаліть адміністратора домену, раніше доданого на кроці 2, із групи "Адміністратори схем".