Frage Wie lösche ich dieses verwaiste Active Directory-Computerobjekt (vorzugsweise mit PowerShell)?


Ich arbeite von einer Windows 7-Workstation mit PowerShell v2.0 und versuche, ein bestimmtes (verwaistes?) Objekt aus der LostAndFound Container in einem 2008 R2 FL Wald und Domäne mit der Active Directory-Papierkorb aktiviert, und kein Glück mit etwas.

Wichtig, ich muss dieses Objekt löschen, und nur dieses Objekt (anstatt jedes Objekt mit dem zu löschen IsDeleted Eigentum, das scheint alles zu sein, was ich Hilfe finden kann).

Ich muss es löschen, weil, um eine gebrochene Vertrauensbeziehung zu lösen, der Computer von der Domäne getrennt wurde (vermutlich bewirkt, dass das Objekt in den Papierkorb und dann in den LostAndFound Container), und wir möchten ihm seinen ursprünglichen Namen zurückgeben (basierend auf der Asset-Tag-Nummer auf dem PC). Versuche, den Computer mit der Domäne mit dem richtigen Namen erneut zu verbinden, sind mit der folgenden Fehlermeldung fehlgeschlagen (The specified account does not exist)

enter image description here

und versuchen, es in den richtigen Namen umzubenennen, sobald es bereits in der Domäne ist, schlägt mit der folgenden Fehlermeldung fehl (The account already exists)

enter image description here

Der eigentliche PC sitzt also dort mit einem falschen Namen, den ich korrigieren muss.

Der Versuch, dieses AD-Objekt zu löschen, führt jedoch zu dem Fehler: The specified account does not exist. Der definierte Name des Objekts hat a \ (Backslash) Zeichen in ihm, was ich davon auslasse, dass es in der LostAndFound Container, und ich frage mich, ob das das Problem ist ... und wie man es beheben kann. Ich renne meine Shell als domain admin, das bestätigt domain admins Die Gruppe hat die volle Kontrolle und das Eigentum an dem fraglichen Objekt und kann es einfach nicht herausfinden.

Das Objekt in Frage (etwas redigiert):

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

Nichts, was ich versucht habe, scheint zu funktionieren, und ich habe viel versucht. In diesem Sinne, was ich versucht habe, unten.

Zuerst mit einem einfachen PowerShell-Cmdlet mit einer Zeile:


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

Dann dasselbe, indem Sie stattdessen auf die GUID verweisen.


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

Dann zuerst den Wert in eine Variable einlesen. (Mit GUID und DN versucht, nur eins, da sie den gleichen Fehler ergeben).


$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

Dann dachte ich, ich könnte damit leben DSRM anrufen müssen anstatt es nativ zu tun.


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.

Dann sagte ich zur Hölle, es automatisierbar zu machen, ich klicke einfach mit der rechten Maustaste und Löschen Sie es über ADSIedit.

enter image description here


Also schlucke ich endlich meinen Stolz und frage hier. Wie zur Hölle werde ich dieses verdammte Objekt los?  Es existiert eindeutig, und seine Existenz verursacht Probleme, doch all meine Versuche, es aus Active Directory zu löschen, werden mit Lügen, verdammten Lügen und Fehlermeldungen beantwortet.


Aktualisieren:

Andere Dinge, die nicht funktioniert haben, basierend auf Kommentaren, Vorschlägen und Diskussionen mit ServerFaulters:

Der Flucht entgehen 0als ob die \0 repräsentiert ein Null-Byte.


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

Dem Ganzen entkommen \0A, als wäre es ein Carriage Return oder eine neue Zeile, wie in DOS (versucht mit `n,` r, `n`r und` r`n). Alle haben den gleichen Fehler zurückgegeben, also nur einmal angezeigt.


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

Der Flucht entgehen \0Aals Form Feed (ja, ein bisschen verzweifelt).


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

Dann dachte ich, ich sollte entscheiden, ob das \0A Charakter war sogar das Problem, also wählte ich ein anderes Objekt aus, das mir im AD Papierkorb mit dem \0A Schnur darin und versuchte es wegzublasen. Es funktionierte.


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


19
2018-05-23 17:57


Ursprung


Fragen zu Server Fault müssen ein Mindestverständnis der betreffenden Technologie aufweisen. Ansonsten wird die Post oft zum Diskussionsforum, anstatt nur Fragen und Antworten. Der beste Rat, den wir Ihnen geben können, ist, einen Berater zu engagieren, der Ihnen hilft oder die Grundlagen dieser Technologie weiter erforscht. - TheCleaner
Tut $C = Get-ADObject -Filter { Name -Like '*DEL:*' } nur deine Waise zurückgeben? Wenn ja, mach es Remove-ADObject -Identity $C.DistinguishedName Das \0 ist ein Null-Terminator. - Ryan Ries
@RyanRies Es gibt nur mein Objekt zurück, aber das Ausführen gibt auch dasselbe zurück The specified account does not exist Error. Für was es wert ist, habe ich auch versucht, die \0 als ein Null-Byte (und es zu entkommen), sowie die Behandlung der \A0 als Wagenrücklauf / Zeilenumbruch (wie es in DOS ist), auch ohne Freude. Verschiedene Versuche zu erraten und zu entkommen \A0 Charaktere wurden getroffen The object name has bad syntax und Directory object not found. :( - HopelessN00b
Bummer ... Ich benutze diese Technik für Konfliktlösungsobjekte ('*CNF:*') die ganze Zeit und es funktioniert perfekt. - Ryan Ries


Antworten:


Laut dem Microsoft-Supporttechniker, mit dem ich gesprochen habe ... und dem Microsoft-Techniker, zu dem er mich erpresst hat ... und ihrem Manager lautet die kurze Antwort, dass die einzige Möglichkeit, sich von diesem verfluchten Objekt zu befreien, zuvor eine autoritative Wiederherstellung ist das Aussehen dieses Objekts in der LostAndFound Container. Ich bin überzeugt, dass ich mich auch davon befreien könnte, indem ich alle Domänencontroller auf LiveCDs hochfahre und die AD-Datenbank manuell bearbeite, aber abgesehen von diesen zwei Nicht-Optionen bin ich damit beschäftigt.


Wie und warum ist das so:

Wir liefen ein repadmin /showobjmeta gegen das Objekt (um in seine Metadaten zu schauen) und konnten aus dem Objekt bestimmen isDeleted Ausführung (2) dass es gelöscht wurde, dann unerwartet und erfolglos / teilweise wiederhergestellt wurde, was das Problem verursacht. Es wurde vorgeschlagen und scheint mir wahrscheinlich, dass nach der Wiederherstellung des Objekts, aber bevor die Änderung vollständig repliziert wurde, sie zusammen mit der übergeordneten Organisationseinheit erneut gelöscht wurde, was dazu führte, dass die Wiederherstellung fehlschlug und als verwaist galt Objekt von mindestens einigen unserer Domänencontroller, landet es in der LostAndFound Container.

Als Ergebnis der partiellen Wiederherstellung kann es nicht wiederhergestellt werden. Als Ergebnis des Objekts SAMAccountType leer seinEs kann nicht gelöscht (oder geändert) werden.

Das SAMAccountType Attribut ist ein Wert, der von keinem Benutzer geändert werden kann. Wenn Sie dies versuchen, wird der folgende Fehler ausgegeben:

enter image description here

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

Wir können das Objekt nicht wiederherstellen, um das System (Sicherheitskonten-Manager) dazu zu bringen, dieses Attribut aufgrund des teilweise wiederhergestellten Status zu setzen, und es kann nicht gelöscht (oder geändert) werden, ohne dass ein gültiger Wert für dieses Attribut vorhanden ist.


Da dies jedoch zu interessant für mich ist, um einfach wegzugehen, werde ich eine Weile herumstochern und sehen, ob ich nicht dazu in der Lage bin oder zumindest meine Kenntnisse erweitern kann AD ein bisschen mehr in dem Versuch. Beats Fehlerbehebung Drucker ... und ehrlich gesagt, es stellt sich heraus, dass ein Computer sagt mir "WILL_NOT_PERFORM" ist eine Herausforderung, der ich nicht widerstehen kann.

Oh ja, du wirst auftreten, verdammt!


2
2018-06-25 13:48





Beyogen auf dieser Beitrag, müssen Sie möglicherweise versuchen, das Objekt auf bestimmten Domänencontrollern zu löschen. Sie könnten versuchen, Ihr Get-ADObject mit dem Parameter -Server auszuführen, um festzustellen, ob das Objekt auf bestimmte DCs beschränkt ist. Dann würde ich dasselbe mit dem Remove-ADObject tun.


1
2018-05-23 18:51



Das scheint nicht das Problem zu sein, da beide DCs an meinem Standort das Objekt enthalten, und die Replikation summt lange richtig, aber es tut nie weh, gründlich zu machen repadmin Diagnose (die ich ausgeführt habe, seit ich die Hoffnung verloren habe, dass es ein Problem mit dem Objektnamen ist), also gute Antwort ... einfach nicht die Antwort hier zu sein. Wenn die Diags abgeschlossen sind, werde ich meinen Beitrag aktualisieren. - HopelessN00b
Scheint wie ein vernünftiger Fehlerbehebungsschritt trotzdem. Danke für die Abstimmung. - Tim Ferrill


Ich habe eine Idee, die einfach funktionieren könnte, es mag ein bisschen einfach oder ungewöhnlich erscheinen, aber wenn ich mich richtig erinnere, hat dies in der Vergangenheit mit verwaisten Accounts funktioniert. Wenn Sie den genauen Kontonamen ermitteln können, nach dem das System, an dem Sie gerade arbeiten, sucht, sei es ein Benutzerkonto oder ein PC / Server-Konto, versuchen Sie, vorübergehend ein Konto desselben Typs und desselben Namens zu erstellen. Sie füllen sozusagen die Lücken sozusagen aus und geben dem System genau das, was es will.

Wenn es sich um ein PC / Server-Konto handelt, muss ein Computer mit dem genauen Namen, den er sucht, zur Domäne hinzugefügt werden, jedoch nur zum Zweck der Erstellung des Kontos. Oder wenn es ein Benutzerkonto ist, erstellen Sie das Benutzerkonto mit dem exakt gleichen Namen usw. Neu. Möglicherweise müssen Sie den Befehl gpupdate / f an der Eingabeaufforderung ausführen, damit der Server das neu erstellte Konto erneut mit der verwaisten OU verbindet.

Fahren Sie dann mit dem Versuch fort, die verwaiste Organisationseinheit zu löschen, die Sie ursprünglich löschen wollten. Sobald Sie die Organisationseinheit bereinigt haben, können Sie das Konto löschen, das Sie für diese Aufgabe erstellt haben.

Ich hoffe, das hilft dir Prost


0
2018-05-28 14:39