Ich arbeite mit PowerShell 2.0 von einer Windows 7-Arbeitsstation aus und versuche, ein bestimmtes (verwaistes?) Objekt aus dem LostAndFound
Container in einer 2008 R2 FL-Gesamtstruktur und -Domäne mit aktiviertem Active Directory-Papierkorb zu löschen mit irgendetwas .
Wichtig ist, dass ich dieses Objekt und nur dieses Objekt löschen muss (anstatt jedes Objekt mit der IsDeleted
Eigenschaft zu löschen , was alles ist, wofür ich Hilfe finden kann).
Ich muss es löschen, da zum Auflösen einer unterbrochenen Vertrauensstellung der Computer von der Domäne getrennt wurde (was vermutlich dazu führte, dass das Objekt in den Papierkorb und dann in den LostAndFound
Container verschoben wurde ), und wir möchten es weitergeben seinen ursprünglichen Namen zurück (der auf der Asset-Tag-Nummer auf dem PC basiert). Versuche, den Computer mit dem richtigen Namen wieder zur Domäne hinzuzufügen, scheiterten mit der folgenden Fehlermeldung ( The specified account does not exist
)
und der Versuch, ihn in den richtigen Namen umzubenennen, sobald er sich bereits in der Domäne befindet, schlägt mit der folgenden Fehlermeldung fehl ( The account already exists
)
der eigentliche PC sitzt also gerade dort mit einem falschen Namen, den ich korrigieren muss.
Um jedoch dieses AD - Objekt zu löschen versuchen , ergibt den Fehler: The specified account does not exist
. Der definierte Name des Objekts enthält einen \
(umgekehrten) Schrägstrich, der vermutlich darauf zurückzuführen ist, dass sich das Objekt im LostAndFound
Container befindet, und ich frage mich, ob das das Problem ist ... und wie Sie es beheben können. Ich führe meine Shell als a aus und habe festgestellt domain admin
, dass die domain admins
Gruppe die volle Kontrolle und das Eigentum an dem betreffenden Objekt hat und ich kann es einfach nicht herausfinden.
Das fragliche Objekt (etwas überarbeitet):
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 unten versucht habe.
Zunächst mit einem einfachen einzeiligen PowerShell-Cmdlet:
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 stattdessen auf die GUID verwiesen wird.
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
Lesen Sie dann zuerst den Wert in eine Variable. (Versucht sowohl mit GUID als auch mit DN, wobei nur eine angezeigt wird, 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 zu müssen, anstatt es von Haus aus 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 verdammt noch mal , ich mache einen Rechtsklick und lösche ihn über ADSIedit .
Also, endlich schlucke ich meinen Stolz und frage hier. Wie zum Teufel werde ich dieses verdammte Objekt los? Es ist eindeutig vorhanden, und seine Existenz verursacht Probleme, aber alle meine Versuche, es aus Active Directory zu löschen, stoßen auf Lügen, verdammte Lügen und Fehlermeldungen.
Aktualisieren:
Andere Dinge, die aufgrund von Kommentaren, Vorschlägen und Diskussionen mit ServerFaulters nicht funktioniert haben:
Escaping 0
, als ob das \0
ein Null-Byte darstellt.
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
Escaping das Ganze \0A
, als wäre es ein Wagenrücklauf 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
Flüchten die \0A
als eine Form Feed (ja, ein bisschen verzweifelt bekommen).
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
Dann dachte ich mir, ich sollte herausfinden, ob der \0A
Charakter überhaupt das Problem ist, also suchte ich mir ein anderes Objekt im AD-Papierkorb aus, das mir egal war \0A
, 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
quelle
$C = Get-ADObject -Filter { Name -Like '*DEL:*' }
nur dein Waisenkind zurück? Wenn ja, tun SieRemove-ADObject -Identity $C.DistinguishedName
Das\0
ist ein Nullterminator.The specified account does not exist
Fehler zurück. Für das, was es wert ist, habe ich auch versucht, das\0
als Null-Byte zu behandeln (und es zu maskieren), sowie das\A0
als Wagenrücklauf / Zeilenumbruch zu behandeln (wie es in DOS ist), auch ohne Freude. Verschiedene Versuche zu erraten und zu entkommen , die\A0
Zeichen wurden mit erfülltThe object name has bad syntax
undDirectory object not found
. :('*CNF:*'
ganze Zeit bei Konfliktlösungsobjekten ( ) und sie funktioniert perfekt.Antworten:
Dem Microsoft-Supporttechniker zufolge, mit dem ich gesprochen habe, und dem Microsoft-Ingenieur, zu dem er mich eskaliert hat, und seinem Manager, ist die kurze Antwort, dass die einzige Möglichkeit, mich von diesem verfluchten Objekt zu befreien, darin besteht, eine autorisierende Wiederherstellung vor dem Ausführen durchzuführen Das Aussehen dieses Objekts im
LostAndFound
Container. Ich bin überzeugt, dass ich mich auch davon befreien könnte, indem ich alle Domänencontroller auf LiveCDs boote und die AD-Datenbank manuell bearbeite, aber abgesehen von diesen beiden Nicht-Optionen bin ich dabei geblieben.Wie und warum ist dies der Fall:
Wir haben ein
repadmin /showobjmeta
gegen das Objekt ausgeführt (um einen Blick in seine Metadaten zu werfen) und konnten anhand der ObjektversionisDeleted
(2
) feststellen, dass es gelöscht und dann unerwartet und erfolglos / teilweise wiederhergestellt wurde, was das Problem verursacht. Es wurde vermutet, dass das Objekt, nachdem es wiederhergestellt wurde, aber bevor die Änderung vollständig repliziert wurde, zusammen mit der übergeordneten Organisationseinheit erneut gelöscht wurde, was dazu führte, dass die Wiederherstellung fehlschlug und es als verwaist angesehen wurde Objekt von mindestens einigen unserer Domänencontroller, landen es in denLostAndFound
Container.Aufgrund der teilweisen Wiederherstellung kann sie nicht wiederhergestellt werden. Da das Objekt
SAMAccountType
leer ist , kann es 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:Das Objekt kann nicht wiederhergestellt werden, damit das System (Sicherheitskonten-Manager) dieses Attribut festlegt, da es sich in einem teilweise wiederhergestellten Zustand befindet. Es kann nicht gelöscht (oder geändert) werden, ohne dass ein gültiger Wert für dieses Attribut vorliegt.
Da dies jedoch zu interessant für mich ist, um einfach davon wegzugehen, werde ich eine Weile herumstöbern und nachsehen, ob ich nicht auf die Idee komme, das zu umgehen, oder zumindest mein Wissen darüber erweitern AD etwas mehr im Versuch. Beats Troubleshooting Printers ... und ehrlich gesagt stellt sich heraus, dass ein Computer, der mir "WILL_NOT_PERFORM" sagt, eine Herausforderung ist, der ich nicht widerstehen kann.
Oh ja, du wirst auftreten, verdammt!
quelle
Aufgrund dieses Beitrags müssen Sie möglicherweise versuchen, das Objekt auf bestimmten Domänencontrollern zu löschen. Sie können versuchen, Get-ADObject mit dem Parameter -Server auszuführen, um festzustellen, ob das Objekt auf bestimmte Domänencontroller beschränkt ist. Dann würde ich dasselbe mit dem Remove-ADObject machen.
quelle
repadmin
Diagnose durchzuführen (auf die ich seitdem keine Hoffnung mehr habe) es ist ein Problem mit dem Objektnamen), also gute Antwort ... nur wahrscheinlich nicht die Antwort hier. Wenn die Diags abgeschlossen sind, aktualisiere ich meinen Beitrag.Ich habe eine Idee, die vielleicht funktioniert, die vielleicht ein bisschen einfach oder ungewöhnlich wirkt, aber wenn ich mich richtig erinnere, hat das in der Vergangenheit bei verwaisten Accounts funktioniert. Wenn Sie den genauen Kontonamen ermitteln können, nach dem Sie suchen, sei es ein Benutzerkonto oder ein PC / Server-Konto, versuchen Sie, vorübergehend ein Konto mit demselben Typ und demselben Namen zu erstellen. Sie füllen also sozusagen die Lücken aus und geben dem System genau das, was es will.
Wenn es sich also um ein PC / Server-Konto handelt, lassen Sie einen Computer mit dem genauen Namen, nach dem er sucht, zur Domäne zurückkehren, jedoch nur zum Erstellen des Kontos. Oder wenn es sich um ein Benutzerkonto handelt, erstellen Sie das Benutzerkonto mit genau demselben Namen usw. Möglicherweise müssen Sie den Befehl gpupdate / f in der Eingabeaufforderung ausführen, damit der Server die Verbindung des neu erstellten Kontos mit der verwaisten Organisationseinheit wiederherstellt.
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 für diese Aufgabe erstellte Konto löschen.
Ich hoffe, das hilft dir beim Jubeln
quelle