Я работаю с рабочей станции Windows 7 с PowerShell v2.0 и пытаюсь удалить определенный (потерянный?) Объект из LostAndFound
контейнера в лесе FL 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
группа имеет полный контроль и владение данным объектом, и просто не могу понять это.
Рассматриваемый объект (несколько отредактированный):
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
источник
$C = Get-ADObject -Filter { Name -Like '*DEL:*' }
Возвращает ли только твоя сирота? Если так, сделайтеRemove-ADObject -Identity $C.DistinguishedName
Это\0
нулевой терминатор.The specified account does not exist
ошибку. Что бы это ни стоило, я также попытался трактовать\0
нулевой байт (и избегать его), а также трактовать\A0
возврат каретки / разрыв строки (как это происходит в DOS), также без всякой радости. Различные попытки угадать и убежать от\A0
персонажей были встреченыThe object name has bad syntax
иDirectory object not found
. :('*CNF:*'
) все время, и она отлично работает.Ответы:
По словам инженера службы поддержки Microsoft, с которым я разговаривал ... и инженера Microsoft, с которым он меня перевел ... и их менеджера, краткий ответ заключается в том, что единственный способ избавиться от этого проклятого объекта - это сделать принудительное восстановление до того, как появление этого объекта в
LostAndFound
контейнере. Я убежден, что мог бы также избавиться от этого, загрузив все контроллеры домена с LiveCD и вручную отредактировав базу данных AD, но если не считать этих двух вариантов, я застрял с этим.Что касается того, как и почему это так:
Мы запустили
repadmin /showobjmeta
объект (чтобы посмотреть его метаданные) и смогли определить из версии объектаisDeleted
(2
), что он был удален, а затем неожиданно и неудачно / частично восстановлен, что и является причиной проблемы. Было высказано предположение, и мне кажется, что после того, как объект был восстановлен, но до того, как изменение полностью реплицировалось, он снова был удален вместе со своим родительским подразделением, что привело к сбою восстановления, в результате чего он был признан потерянным возражать, по крайней мере, некоторым из наших контроллеров домена, посадив его вLostAndFound
контейнер.В результате частичного восстановления его невозможно восстановить. В результате того, что объект
SAMAccountType
пуст , он не может быть удален (или изменен).SAMAccountType
Атрибут значение , которое не может быть изменено любым пользователем, и пытается сделать это бросает ошибку ниже:Мы не можем восстановить объект, чтобы заставить систему (диспетчер учетных записей безопасности) установить этот атрибут из-за частично восстановленного состояния, в котором он находится, и мы не можем удалить его (или изменить его) без действительного значения для этого атрибута.
Однако, поскольку это слишком интересный случай для меня, чтобы просто уйти от него, я собираюсь немного покопаться и посмотреть, не смогу ли я придумать способ обойти это или хотя бы расширить свои знания о AD немного больше в попытке. Лучше, чем устранение неполадок с принтерами ... и, честно говоря, оказывается, что компьютер, сообщающий мне "WILL_NOT_PERFORM", является проблемой, которую я не могу устоять.
О да, ты будешь выступать, черт побери!
источник
Исходя из этого поста , вам может потребоваться попытаться удалить объект на определенных контроллерах домена. Вы можете попробовать запустить Get-ADObject с параметром -Server, чтобы определить, ограничен ли объект конкретными контроллерами домена. Тогда я бы сделал то же самое с Remove-ADObject.
источник
repadmin
диагностику (которой я руководил с тех пор, как потерял надежду на это проблема с именем объекта), так что хороший ответ ... просто вряд ли ответ здесь. Когда завершатся наброски, я обновлю свой пост.У меня есть идея, которая может сработать, она может показаться немного простой или необычной, но если я правильно помню, это работало для меня в прошлом с осиротевшими аккаунтами. Если вы можете определить точное имя учетной записи, которую ищет система, над которой вы работаете, будь то учетная запись пользователя или учетная запись ПК / сервера, попробуйте временно создать учетную запись того же типа и с тем же именем. Таким образом, вы, по сути, заполняете пробелы, так сказать, и даете системе именно то, что она хочет.
Поэтому, если это учетная запись ПК / сервера, подключите компьютер к домену с точным именем, которое он ищет, но только для создания учетной записи. Или, если это учетная запись пользователя, воссоздайте учетную запись пользователя с точно таким же именем и т. Д. вам может потребоваться выполнить команду gpupdate / f в командной строке, чтобы сервер переподключил вновь созданную учетную запись с потерянным подразделением.
Затем попытайтесь удалить осиротевшее подразделение, которое вы изначально хотели удалить. После очистки подразделения вы можете удалить учетную запись, созданную для этой задачи.
Я надеюсь, что это поможет вам ура
источник