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
$C = Get-ADObject -Filter { Name -Like '*DEL:*' }
nur dein Waisenkind zurück? Wenn ja, tun Sie Remove-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üllt The object name has bad syntax
und Directory object not found
. :(
'*CNF:*'
ganze Zeit bei Konfliktlösungsobjekten ( ) und sie funktioniert perfekt.