Estoy trabajando desde una estación de trabajo de Windows 7, con PowerShell v2.0, y estoy tratando de eliminar un objeto particular (¿huérfano?) Del LostAndFound
contenedor en un bosque y dominio de 2008 R2 FL con la Papelera de reciclaje de Active Directory habilitada, y no tengo suerte con nada .
Es importante destacar que necesito eliminar este objeto, y solo este objeto (en lugar de eliminar todos los objetos con la IsDeleted
propiedad, que parece ser todo en lo que puedo encontrar ayuda).
Necesito eliminarlo, porque para resolver una relación de confianza rota, la computadora se separó del dominio (presumiblemente haciendo que el objeto vaya a la Papelera de reciclaje, y luego al LostAndFound
contenedor), y nos gustaría darlo su nombre original de nuevo (que se basa en el número de etiqueta de activo en la PC). Los intentos de volver a unir la computadora al dominio con el nombre correcto fallaron con el siguiente mensaje de error ( The specified account does not exist
)
e intentar cambiar el nombre al nombre correcto una vez que ya está en el dominio falla con el siguiente mensaje de error ( The account already exists
)
así que la PC actual está actualmente sentada allí con un nombre incorrecto, que necesito rectificar.
Sin embargo, el intento de eliminar este objeto AD produce el error: The specified account does not exist
. El nombre distinguido del objeto tiene un carácter \
(barra invertida), lo que supongo se debe a que está en el LostAndFound
contenedor, y me pregunto si ese es el problema ... y cómo solucionarlo. Estoy ejecutando mi shell como un domain admin
, verificado que el domain admins
grupo tiene el control total y la propiedad del objeto en cuestión, y parece que no puedo entenderlo.
El objeto en cuestión (algo redactado):
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
Nada de lo que he intentado parece funcionar, y he intentado mucho. En esa nota, lo que he intentado, a continuación.
Primero, con un cmdlet PowerShell simple de una línea:
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
Luego, lo mismo, haciendo referencia al GUID en su lugar.
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
Luego, leyendo el valor en una variable primero. (Intenté con GUID y DN, solo mostrando uno, ya que producen el mismo error).
$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
Entonces pensé que podría vivir teniendo que llamar a DSRM en lugar de hacerlo de forma nativa.
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.
Entonces le dije al infierno que lo hiciera automatizable, simplemente haré clic derecho y lo eliminaré a través de ADSIedit .
Entonces, finalmente, me estoy tragando mi orgullo y preguntando aquí. ¿Cómo diablos me deshago de este maldito objeto? Claramente existe, y su existencia está causando problemas, sin embargo, todos mis intentos de eliminarlo de Active Directory se encuentran con mentiras, malditas mentiras y mensajes de error.
Actualizar:
Otras cosas que no han funcionado, basadas en comentarios, sugerencias y discusiones con ServerFaulters:
Escapar de 0
, como si \0
representa un byte nulo.
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
Escapando del todo \0A
, como si fuera un retorno de carro o una nueva línea, como en DOS (probado con `n,` r, `n`r y` r`n). Todos devolvieron el mismo error, por lo que solo se muestran una vez.
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
Escapando \0A
como un formulario de alimentación (sí, un poco desesperado).
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
Luego pensé que debería determinar si el \0A
personaje era el problema, así que elegí un objeto diferente que no me importaba en la Papelera de reciclaje de AD con la \0A
cadena e intenté volarlo. Funcionó.
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
fuente
$C = Get-ADObject -Filter { Name -Like '*DEL:*' }
Devuelve solo tu huérfano? Si es así, hazRemove-ADObject -Identity $C.DistinguishedName
eso\0
es un terminador nulo.The specified account does not exist
error. Por lo que vale, también he intentado tratar el\0
como un byte nulo (y escapar), así como tratarlo\A0
como un retorno de carro / salto de línea (como lo es en DOS), también sin alegría. Varios intentos de adivinar y escapar de los\A0
personajes se han encontrado conThe object name has bad syntax
yDirectory object not found
. :('*CNF:*'
) todo el tiempo y funciona perfectamente.Respuestas:
Según el ingeniero de soporte técnico de Microsoft con el que hablé ... y el ingeniero de Microsoft con el que me contactó ... y su gerente, la respuesta breve es que la única forma de deshacerme de este objeto maldito es hacer una restauración autorizada antes Apariencia de este objeto en el
LostAndFound
contenedor. Estoy convencido de que también podría deshacerme de él arrancando todos los controladores de dominio en LiveCD y editando manualmente la base de datos de AD, pero a falta de esas dos no opciones, estoy atascado.En cuanto a cómo y por qué este es el caso:
Ejecutamos un comando
repadmin /showobjmeta
contra el objeto (para echar un vistazo a sus metadatos) y pudimos determinar a partir de laisDeleted
versión del objeto (2
) que se eliminó, y luego se recuperó de forma inesperada y sin éxito, que es lo que está causando el problema. Se sugirió, y me parece probable, que después de que el objeto fue restaurado, pero antes de que el cambio se hubiera replicado por completo, se eliminó nuevamente, junto con su unidad organizativa principal, lo que provocó que la restauración fallara y se considerara huérfano. objetar al menos algunos de nuestros controladores de dominio, aterrizándolo en elLostAndFound
contenedor.Como resultado de la restauración parcial, no se puede restaurar. Como resultado de que el objeto
SAMAccountType
esté vacío , no se puede eliminar (o modificar).El
SAMAccountType
atributo es un valor que ningún usuario puede cambiar, e intentar hacerlo arroja el siguiente error:No podemos restaurar el objeto para que el sistema (Administrador de cuentas de seguridad) establezca este atributo debido al estado parcialmente restaurado en el que se encuentra, y no podemos eliminarlo (o modificarlo) sin un valor válido para ese atributo.
Sin embargo, dado que este es un caso demasiado interesante para que simplemente me aleje, voy a hurgar un rato y ver si no puedo encontrar una forma de evitar esto, o al menos ampliar mi conocimiento de AD un poco más en el intento. Es mejor que solucionar problemas con las impresoras ... y, francamente, resulta que una computadora que me dice "WILL_NOT_PERFORM" es un desafío que no puedo resistir.
¡Oh, sí, actuarás, maldita sea!
fuente
Según esta publicación , es posible que deba intentar eliminar el objeto en controladores de dominio específicos. Puede intentar ejecutar su Get-ADObject con el parámetro -Server para determinar si el objeto está limitado a DC específicos. Luego haría lo mismo con Remove-ADObject.
fuente
repadmin
diagnóstico completo (que he estado ejecutando desde que perdí la esperanza de es un problema con el nombre del objeto), así que es una buena respuesta ... probablemente no sea la respuesta aquí. Cuando se completen los diags, actualizaré mi publicación.Tengo una idea que podría funcionar, puede parecer un poco simple o fuera de lo común, pero si recuerdo correctamente, esto me ha funcionado en el pasado con cuentas huérfanas. Si puede determinar el nombre exacto de la cuenta, el sistema en el que está trabajando está buscando, ya sea una cuenta de usuario o una cuenta de PC / servidor, intente crear temporalmente una cuenta del mismo tipo y el mismo nombre. Entonces, básicamente, está completando los espacios en blanco, por así decirlo, y dando al sistema exactamente lo que quiere.
Entonces, si se trata de una cuenta de PC / servidor, haga que una máquina vuelva a unirse al dominio con el nombre exacto que está buscando, pero solo con el fin de crear la cuenta. O si se trata de una cuenta de usuario, vuelva a crearla con el mismo nombre, etc. es posible que deba ejecutar el comando gpupdate / f en el símbolo del sistema para que el servidor vuelva a conectar la cuenta recién recreada con la unidad organizativa huérfana.
Luego, intente eliminar la unidad organizativa huérfana que originalmente quería eliminar. Una vez que limpie la unidad organizativa, puede eliminar la cuenta que creó para esta tarea.
Espero que esto te ayude
fuente