Назад | Перейти на главную страницу

Как удалить этот потерянный компьютерный объект Active Directory (желательно с помощью PowerShell)?

Я работаю на рабочей станции Windows 7 с PowerShell v2.0 и пытаюсь удалить определенный (потерянный?) Объект из LostAndFound контейнер в лесу FL 2008 R2 и домен с Корзина 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 group имеет полный контроль и право собственности на объект, о котором идет речь, и просто не может понять этого.

Рассматриваемый объект (несколько отредактирован):

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=SomeComputer♀DEL:...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

По словам инженера службы поддержки Microsoft, с которым я разговаривал ... и инженера Microsoft, к которому он меня направил ... и их менеджера, краткий ответ заключается в том, что единственный способ избавиться от этого проклятого объекта - это полностью восстановить предыдущее состояние. появление этого объекта в LostAndFound контейнер. Я убежден, что мог бы также избавиться от этого, загрузив все контроллеры домена на LiveCD и вручную отредактировав базу данных AD, но, если не считать этих двух опций, я застрял на этом.


Что касается того, как и почему это так:

Мы провели repadmin /showobjmeta против объекта (чтобы заглянуть в его метаданные) и смогли определить по объекту isDeleted версия (2), что он был удален, а затем неожиданно и безуспешно / частично восстановлен, что и является причиной проблемы. Было высказано предположение, и мне кажется вероятным, что после того, как объект был восстановлен, но до того, как изменение было полностью реплицировано, он был снова удален вместе с его родительским OU, что привело к сбою восстановления и в результате его считали осиротевшим. объект хотя бы некоторыми из наших контроллеров домена, помещая его в 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", - это проблема, перед которой я не могу устоять.

О да, ты будешь выступать, черт возьми!

На основе эта почта, возможно, вам придется попытаться удалить объект на определенных контроллерах домена. Вы можете попробовать запустить Get-ADObject с параметром -Server, чтобы определить, ограничен ли объект конкретными контроллерами домена. Затем я бы сделал то же самое с Remove-ADObject.

У меня есть идея, которая может сработать, она может показаться немного простой или необычной, но, если я правильно помню, это работало для меня в прошлом с осиротевшими учетными записями. Если вы можете определить точное имя учетной записи, система, над которой вы работаете, ищет, будь то учетная запись пользователя или учетная запись ПК / сервера, попробуйте временно создать учетную запись того же типа и с тем же именем. Таким образом, вы, так сказать, заполняете пробелы и даете системе именно то, что она хочет.

Поэтому, если это учетная запись ПК / сервера, подключите машину к домену с точным именем, которое она ищет, но только с целью создания учетной записи. Или, если это учетная запись пользователя, воссоздайте учетную запись пользователя с тем же именем и т. Д. вам может потребоваться запустить команду gpupdate / f в командной строке, чтобы сервер повторно подключил вновь созданную учетную запись к потерянной OU.

Затем продолжайте попытки удалить потерянное подразделение, которое вы изначально хотели удалить. После того, как вы очистите OU, вы можете удалить учетную запись, созданную для этой задачи.

Надеюсь, это поможет вам развеселить