Як видалити цей осиротілий об’єкт комп'ютера Active Directory (бажано за допомогою PowerShell)?


20

Я працюю на робочій станції Windows 7, з PowerShell v2.0, і намагаюся видалити певний (осиротілий?) Об’єкт з LostAndFoundконтейнера в лісі та домені R2 FL 2008 року з дозволом з увімкненим кошиком Active Directory , і не маючи удачі ні з чим .

Важливо, що мені потрібно видалити цей об’єкт і лише цей об’єкт (а не видаляти кожен об’єкт із IsDeletedвластивістю, який, здається, є всім, на що я можу знайти допомогу).

Мені потрібно видалити його, тому що для вирішення порушених довірчих відносин комп'ютер був відірваний від домену (імовірно, змусивши об'єкт перейти до кошика, а потім до LostAndFoundконтейнера), і ми хотіли б надати його його початкове ім'я назад (яке базується на номері тегу активів на ПК). Спроба знову приєднати комп’ютер до домену з правильним іменем не вдалась із наведеним нижче повідомленням про помилку ( The specified account does not exist)

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

і спроба перейменувати його на правильне ім'я, як тільки він уже знаходиться в домені, не вдасться, наведено нижче повідомлення про помилку ( The account already exists)

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

тож власне ПК зараз сидить там із неправильним ім’ям, яке мені потрібно виправити.

Однак, при спробі видалити цей об'єкт AD дає помилку: The specified account does not exist. Розрізнена назва об'єкта має \(зворотний косий) символ у ньому, який, я вважаю, пов'язаний з тим, що він знаходиться в LostAndFoundконтейнері, і мені цікаво, чи це проблема ... і як це виправити. Я використовую свою оболонку як domain adminперевірену, що domain adminsгрупа має повний контроль і право власності на предмет, про який йдеться, і просто не можу зрозуміти це.

Об'єкт, про який йде мова (дещо відредагований):

Get-ADObject "CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects -Properties *

accountExpires                  : 9223372036854775807
CanonicalName                   : MyEmployer.prv/LostAndFound/SomeComputer
                                  DEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6
CN                              : SomeComputer
                                  DEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6
codePage                        : 0
countryCode                     : 0
Created                         : 12/7/2012 9:25:30 PM
createTimeStamp                 : 12/7/2012 9:25:30 PM
Deleted                         :
Description                     : HP6300
DisplayName                     :
DistinguishedName               : CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=
                                  prv
dNSHostName                     : SomeComputer.MyEmployer.prv
dSCorePropagationData           : {5/21/2014 1:40:31 PM, 12/31/1600 7:00:00 PM}
instanceType                    : 4
isCriticalSystemObject          : False
isDeleted                       :
LastKnownParent                 : OU=Workstations,OU=Computers,OU=One of Our Sites,DC=MyEmployer,DC=prv
lastLogonTimestamp              : 130451668084269817
localPolicyFlags                : 0
memberOf                        : {CN=PCMilerComputers,DC=MyEmployer,DC=prv}
Modified                        : 5/21/2014 1:40:54 PM
modifyTimeStamp                 : 5/21/2014 1:40:54 PM
msDS-LastKnownRDN               : SomeComputer
Name                            : SomeComputer
                                  DEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6
nTSecurityDescriptor            : System.DirectoryServices.ActiveDirectorySecurity
ObjectCategory                  :
ObjectClass                     : computer
ObjectGUID                      : 90a13eaa-c7b0-4258-bebb-87b7aed39ec6
objectSid                       : S-1-5-21-1708945318-605057401-313073093-5882480
operatingSystem                 : Windows 7 Enterprise
operatingSystemServicePack      : Service Pack 1
operatingSystemVersion          : 6.1 (7601)
primaryGroupID                  : 515
ProtectedFromAccidentalDeletion : False
pwdLastSet                      : 130451667147545072
sAMAccountName                  : SomeComputer$
sDRightsEffective               : 15
servicePrincipalName            : {HOST/SomeComputer, HOST/SomeComputer.MyEmployer.prv}
userAccountControl              : 4096
userCertificate                 : [Not included]
uSNChanged                      : 54007434
uSNCreated                      : 5004556
whenChanged                     : 5/21/2014 1:40:44 PM
whenCreated                     : 12/7/2012 9:25:30 PM

Ніщо, що я намагався, здається, не працює, і я багато пробував. На цій замітці, що я спробував, нижче.

По-перше, з простим однорядковим командлетом PowerShell:


Get-ADObject "CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target
"CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y
Remove-ADObject : The specified account does not exist
At line:1 char:145
+ Get-ADObject "CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject <<<<
    + CategoryInfo          : NotSpecified: (CN=SomeComputer\0ADE...MyEmployer,DC=prv:ADObject) [Remove-ADObject], ADException
    + FullyQualifiedErrorId : The specified account does not exist,Microsoft.ActiveDirectory.Management.Commands.RemoveADObject

Потім те ж саме, натомість посилаючись на GUID.


Get-ADObject "90a13eaa-c7b0-4258-bebb-87b7aed39ec6"  -IncludeDeletdObjects | Remove-ADObject

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target
"CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y
Remove-ADObject : The specified account does not exist
At line:1 char:94
+ Get-ADObject "90a13eaa-c7b0-4258-bebb-87b7aed39ec6"  -IncludeDeletedObjects | Remove-ADObject <<<<
    + CategoryInfo          : NotSpecified: (CN=SomeComputer\0ADE...MyEmployer,DC=prv:ADObject) [Remove-ADObject], ADException
    + FullyQualifiedErrorId : The specified account does not exist,Microsoft.ActiveDirectory.Management.Commands.RemoveADObject

Потім, читаючи значення спочатку в змінній. (Спробували і GUID, і DN, показуючи лише один, оскільки вони дають однакову помилку).


$blah = "90a13eaa-c7b0-4258-bebb-87b7aed39ec6"
Get-ADObject $blah -IncludeDeletedObjects | Remove-ADObject

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target
"CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y
Remove-ADObject : The specified account does not exist
At line:1 char:60
+ Get-ADObject $blah -IncludeDeletedObjects | Remove-ADObject <<<<
    + CategoryInfo          : NotSpecified: (CN=SomeComputer\0ADE...MyEmployer,DC=prv:ADObject) [Remove-ADObject], ADException
    + FullyQualifiedErrorId : The specified account does not exist,Microsoft.ActiveDirectory.Management.Commands.RemoveADObject

Тоді я зрозумів, що можу жити з тим, щоб зателефонувати в DSRM, а не робити це вдома.


dsrm "CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=Lost
AndFound,DC=MyEmployer,DC=prv"

Are you sure you wish to delete CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv
 (Y/N)? y
dsrm failed:CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv:The specified account does not exist.

Тоді я сказав до біса, зробивши його автоматичним, я просто клацну правою кнопкою миші та видалю його через ADSIedit .

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


Отже, нарешті, я ковтаю свою гордість і прошу тут. Як, до біса, я позбувся цього проклятого предмета? Воно явно існує, і його існування викликає проблеми, але всі мої спроби видалити його з Active Directory зустрічаються з брехнею, проклятою брехнею та повідомленнями про помилки.


Оновлення:

Інші речі, які не працювали, грунтуючись на коментарях, пропозиціях та дискусіях із ServerFaulters:

Ухиляючись від 0, як би \0представляє нульовий байт.


Get-ADObject "CN=SomeComputer`0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject

Get-ADObject : No superior reference has been configured for the directory service. The directory service is therefore unable to issue referrals to objects outside this forest
At line:1 char:13
+ Get-ADObject <<<<  "CN=SomeComputer`0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -Includ
eDeletedObjects | Remove-ADObject
    + CategoryInfo          : NotSpecified: (CN=SomeComputer ADEL...MyEmployer,DC=prv:ADObject) [Get-ADObject], ADException
    + FullyQualifiedErrorId : No superior reference has been configured for the directory service. The directory service is therefore unable to issue referrals to objects outside this forest,Microsoft.ActiveDirectory.Management.Commands.GetADObject

Ухиляючись від цілого \0A, ніби це повернення вагона або новий рядок, як у DOS (спробували з `n,` r, `n`r і` r`n). Усі повернули одну і ту ж помилку, тому показано лише один раз.


Get-ADObject "SomeComputer`n`rDEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject

Get-ADObject : The object name has bad syntax
At line:1 char:13
+ Get-ADObject <<<<  "CN=SomeComputer`n`rDEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject
    + CategoryInfo          : NotSpecified: (CN=SomeComputer
DEL...MyEmployer,DC=prv:ADObject) [Get-ADObject], ADException
    + FullyQualifiedErrorId : The object name has bad syntax,Microsoft.ActiveDirectory.Management.Commands.GetADObject

Уникнення \0Aподачі як форми (так, трохи відчайдушно).


Get-ADObject "CN=SomeComputer`fDEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject

Get-ADObject : Directory object not found
At line:1 char:13
+ Get-ADObject <<<<  "CN=SomeComputer`fDEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject
    + CategoryInfo          : ObjectNotFound: (CN=SomeComputerDEL:...MyEmployer,DC=prv:ADObject) [Get-ADObject], ADIdentityNotFoundException
    + FullyQualifiedErrorId : Directory object not found,Microsoft.ActiveDirectory.Management.Commands.GetADObject

Тоді я подумав, що я повинен визначити, чи є \0Aперсонаж навіть проблемою, тому я вибрав інший предмет, який мені не хвилювався, у кошику AD зі \0Aстрічкою в ньому та спробував підірвати його. Це спрацювало.


Get-ADObject -Filter { Name -Like '*DEL:*' } -IncludeDeletedObjects | Remove-ADObject

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target "CN=SomeServer-SomeJackass HP LaserJet 1320
PS\0ADEL:eddb23e7-b8d8-4d00-801f-22d82c169d66,CN=Deleted Objects,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target "CN=SomeServer-SomeJackass HP LaserJet 1320 PCL
5e\0ADEL:6e72e78f-f110-492c-ad50-91107f6fbd6a,CN=Deleted Objects,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y


4
Питання про помилку сервера повинні демонструвати мінімальне розуміння відповідної технології. В іншому випадку публікація часто перетворюється на дискусійний форум , а не на прямі запитання. Найкраща порада, яку ми можемо дати вам, - це найняти консультанта, який допоможе вам зробити або провести подальші дослідження основ цієї технології.
TheCleaner

Чи $C = Get-ADObject -Filter { Name -Like '*DEL:*' }повертає лише ваше сироту? Якщо так, зробіть Remove-ADObject -Identity $C.DistinguishedNameЦе \0нульовий термінатор.
Райан Райс

@RyanRies Він повертає лише мій об’єкт, але запуск, який також повертає ту саму The specified account does not existпомилку. Що для цього варто, я також намагався розглядати \0як нульовий байт (і уникати його), а також розглядаю \A0як перевал / повернення каретки (перерва лінії) (як це в DOS), також не радісно. Різні спроби гадати і можливість уникнути \A0символів були зустрінуті The object name has bad syntaxі Directory object not found. :(
HopelessN00b

Баммер ... Я використовую цю техніку на об'єктах вирішення конфліктів ( '*CNF:*') весь час, і вона прекрасно працює.
Райан Райс

Відповіді:


3

За словами інженера з підтримки Microsoft, з яким я спілкувався ... та інженера Microsoft, він перейшов до мене ... та їхнього менеджера, коротка відповідь полягає в тому, що єдиний спосіб позбавити себе цього проклятого об'єкта - це зробити авторитетне відновлення до поява цього предмета в LostAndFoundконтейнері. Я переконаний, що міг би позбутися і цього, завантаживши всі контролери домену на LiveCD і вручну редагувавши базу даних AD, але, окрім цих двох неопціон, я затримався.


Як і чому це так:

Ми запустили repadmin /showobjmetaпроти об’єкта (зазирнути до його метаданих) і змогли визначити з isDeletedверсії об’єкта ( 2), що він був видалений, потім несподівано та невдало / частково відновлений, що є причиною проблеми. Мені було припущено, і мені здається, ймовірно, що після відновлення об'єкта, але до того, як зміна повністю повторилася, його знову видалили разом із його батьківським ОУ, що призвело до відмови від відновлення, і внаслідок цього його вважали сиротою заперечують об'єкт хоча б деякими з наших контролерів домену, висаджуючи його в LostAndFoundконтейнер.

В результаті часткового відновлення його неможливо відновити. Через те, що об’єкт SAMAccountTypeпорожній , його неможливо видалити (або змінити).

SAMAccountTypeАтрибут значення , яке не може бути змінено будь-яким користувачем, і намагається зробити це кидає помилку нижче:

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

Operation failed. Error code: 0x209a
Access to the attribute is not permitted because the attribute is owned by the Security Accounts Manager (SAM).

0000209A: SvcErr: DSID-031A1021, problem 5003
(WILL_NOT_PERFORM), data 0

Ми не можемо відновити об’єкт, щоб система (менеджер облікових записів безпеки) встановила цей атрибут через частково відновлений стан, у якому він знаходиться, і ми не можемо його видалити (або змінити) без дійсного значення для цього атрибута.


Однак, оскільки для мене це занадто цікавий випадок, щоб я просто пішов звідти, я на деякий час задумаюся і побачу, чи не можу я це зробити, або принаймні розширити свої знання про AD трохи більше у спробі. Перемагає усунення несправностей принтерів ... і, чесно кажучи, виявляється, що комп'ютер, який говорить мені "WILL_NOT_PERFORM", - це виклик, якому я не можу встояти.

О так, ви будете виступати, чорт!


1

Виходячи з цього повідомлення , можливо, вам доведеться спробувати видалити об'єкт на певних контролерах домену. Ви можете спробувати запустити свій Get-ADObject з параметром -Server, щоб визначити, чи обмежений об'єкт певними постійними DC. Тоді я б зробив те ж саме з Remove-ADObject.


Це, здається, не є проблемою, оскільки обидва DC на моєму сайті містять об'єкт, і реплікація гуде довго належним чином, але ніколи не зашкодить зробити ретельну repadminдіагностику (яку я бігав, втрачаючи надію на це проблема з назвою об'єкта), тож хороша відповідь ... просто не ймовірна відповідь тут. Коли діалоги завершаться, я оновлю свою посаду.
HopelessN00b

У будь-якому випадку це вважається розумним кроком усунення несправностей. Дякуємо за підсумкове голосування.
Тім Феррілл

0

У мене є ідея, що це може спрацювати, це може здатися трохи простим або незвичним, але якщо я добре пам’ятаю, це працювало для мене в минулому з осиротілими записами. Якщо ви можете визначити точну назву облікового запису, система, над якою ви працюєте, шукає, будь то обліковий запис користувача або ПК / сервер, спробуйте тимчасово створити обліковий запис того ж типу та те саме ім’я. Отже, ви по суті заповнюєте заготовки, так би мовити, і надаєте системі саме те, що вона хоче.

Тож якщо це обліковий запис ПК / сервера, майте машину, приєднану до домену з точним ім'ям, яке воно шукає, але лише з метою створення облікового запису. Або якщо це обліковий запис користувача, відтворіть обліковий запис користувача з точно такою ж назвою тощо. Вам може знадобитися запустити команду gpupdate / f у командному рядку, щоб сервер відновив знову створений обліковий запис із OU-сиротою.

Потім перейдіть до спроби видалити осиротілий OU, який ви спочатку хотіли видалити. Після очищення ОУ ви можете видалити створений для цього завдання обліковий запис.

Я сподіваюся, що це допоможе вам ура

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.