Pracuję ze stacji roboczej Windows 7 z PowerShell v2.0 i próbuję usunąć konkretny (osierocony?) Obiekt z LostAndFound
kontenera w lesie i domenie 2008 R2 FL z włączonym Koszem Active Directory i nie mam szczęścia z czymkolwiek .
Co ważne, muszę usunąć ten obiekt i tylko ten obiekt (zamiast usuwać każdy obiekt z IsDeleted
właściwością, która wydaje się być wszystkim, na czym mogę znaleźć pomoc).
Muszę go usunąć, ponieważ aby rozwiązać zerwaną relację zaufania, komputer został odłączony od domeny (przypuszczalnie powodując przejście obiektu do Kosza, a następnie do LostAndFound
kontenera), i chcielibyśmy to dać oryginalna nazwa z powrotem (która jest oparta na numerze znacznika zasobu na komputerze). Próby ponownego przyłączenia komputera do domeny o poprawnej nazwie nie powiodły się z poniższym komunikatem o błędzie ( The specified account does not exist
)
i próba zmiany nazwy na prawidłową nazwę, gdy jest już w domenie, kończy się niepowodzeniem z poniższym komunikatem o błędzie ( The account already exists
)
tak więc rzeczywisty komputer PC ma obecnie niepoprawną nazwę, którą muszę poprawić.
Jednak próby usunięcia tego obiektu AD daje błąd: The specified account does not exist
. Nazwa wyróżniająca obiektu zawiera znak \
(odwrotny ukośnik), co, jak zakładam, wynika z tego, że znajduje się w LostAndFound
kontenerze, i zastanawiam się, czy to jest problem ... i jak to naprawić. Używam mojej powłoki jako domain admin
, zweryfikowałem todomain admins
grupa ma pełną kontrolę i własność przedmiotowego obiektu i po prostu nie mogę tego rozgryźć.
Przedmiotowy przedmiot (nieco zredagowany):
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
Wydaje mi się, że nic, co próbowałem, nie działa i dużo próbowałem. W tej notatce, co próbowałem poniżej.
Po pierwsze, za pomocą zwykłego jednego wiersza polecenia cmdlet programu 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
Następnie to samo, odwołując się do 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
Następnie najpierw wczytaj wartość do zmiennej. (Próbowałem z GUID i DN, pokazując tylko jeden, ponieważ dają ten sam błąd).
$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
Potem pomyślałem, że mogę żyć z koniecznością wywoływania DSRM zamiast robić to natywnie.
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.
Potem powiedziałem do piekła, że jest to automatyczne, po prostu kliknę prawym przyciskiem myszy i usunę go za pomocą ADSIedit .
W końcu przełykam dumę i pytam tutaj. Jak, do diabła, pozbyłem się tego cholernego obiektu? Wyraźnie istnieje, a jego istnienie powoduje problemy, ale wszystkie moje próby usunięcia go z Active Directory spotykają się z kłamstwami, przeklętymi kłamstwami i komunikatami o błędach.
Aktualizacja:
Inne rzeczy, które nie działały, na podstawie komentarzy, sugestii i dyskusji z ServerFaulters:
Ucieczka 0
, jakby \0
reprezentował bajt zerowy.
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
Ucieczka od całości \0A
, jakby to był powrót karetki lub nowa linia, jak w DOS (próbowano z `n,` r, `n`r i` r`n). Wszystkie zwróciły ten sam błąd, więc pokazano tylko raz.
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
Ucieczka z \0A
pliku danych (tak, trochę desperacja).
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
Potem pomyślałem, że powinienem ustalić, czy \0A
postać stanowi nawet problem, więc wybrałem inny przedmiot, na którym mi nie zależało, w Koszu AD z \0A
łańcuchem i próbowałem go zdmuchnąć. Zadziałało.
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
źródło
$C = Get-ADObject -Filter { Name -Like '*DEL:*' }
zwraca tylko twoją sierotę? Jeśli tak, zróbRemove-ADObject -Identity $C.DistinguishedName
To\0
jest terminatorem zerowym.The specified account does not exist
błędu. Dla tego, co jest warte, próbowałem również traktować ten\0
bajt zerowy (i ucieczkę od niego), a także traktować\A0
jako powrót karetki / przerwanie linii (jak to jest w DOS), również bez radości. Różne próby zgadywania i ucieczki\A0
bohaterów spotkały się zThe object name has bad syntax
iDirectory object not found
. :('*CNF:*'
Cały czas używam tej techniki na obiektach rozwiązywania konfliktów ( ) i działa ona doskonale.Odpowiedzi:
Według inżyniera wsparcia Microsoft, z którym rozmawiałem ... i inżyniera Microsoftu, do którego eskalował mnie ... i ich menedżera, krótka odpowiedź jest taka, że jedynym sposobem na pozbycie się tego przeklętego obiektu jest autorytatywne przywrócenie wcześniej wygląd tego obiektu w
LostAndFound
pojemniku. Jestem przekonany, że mógłbym się go również pozbyć, uruchamiając wszystkie kontrolery domeny na LiveCD i ręcznie edytując bazę danych AD, ale brakuje mi tych dwóch innych opcji, utknąłem przy tym.Co do tego, jak i dlaczego tak jest:
Uruchomiliśmy obiekt
repadmin /showobjmeta
przeciw (aby zajrzeć do jego metadanych) i na podstawie wersji obiektuisDeleted
(2
) mogliśmy ustalić , że został on usunięty, a następnie niespodziewanie i częściowo / nie przywrócony, co jest przyczyną problemu. Zasugerowano i wydaje mi się prawdopodobne, że po przywróceniu obiektu, ale przed całkowitą replikacją zmiany, została ona ponownie usunięta wraz z nadrzędną jednostką organizacyjną, co spowodowało niepowodzenie przywracania i spowodowało, że uznano ją za osieroconą sprzeciwić się przynajmniej niektórym z naszych kontrolerów domeny, lądując wLostAndFound
kontenerze.W wyniku częściowego przywracania nie można go przywrócić. Ponieważ obiekt
SAMAccountType
jest pusty , nie można go usunąć (ani zmodyfikować).SAMAccountType
Atrybutem jest wartość, która nie może być zmieniany przez każdego użytkownika i stara się zrobić tak rzuca poniżej błędu:Nie możemy przywrócić obiektu, aby system (Menedżer kont zabezpieczeń) ustawił ten atrybut z powodu częściowo przywróconego stanu, w którym się znajduje, i nie możemy go usunąć (ani zmodyfikować) bez prawidłowej wartości tego atrybutu.
Ponieważ jednak jest to zbyt interesujący przypadek, abym mógł po prostu odejść, zacznę się przez chwilę rozglądać i sprawdzić, czy nie mogę wymyślić sposobu na obejście tego, a przynajmniej poszerzyć swoją wiedzę na temat AD przy próbie trochę więcej. Pokonuje rozwiązywanie problemów z drukarkami ... i szczerze mówiąc, okazuje się, że komputer mówi mi „WILL_NOT_PERFORM” to wyzwanie, któremu nie mogę się oprzeć.
O tak, zagracie, cholera!
źródło
Na podstawie tego postu może być konieczne usunięcie obiektu na określonych kontrolerach domeny. Możesz spróbować uruchomić Get-ADObject z parametrem -Server, aby ustalić, czy obiekt jest ograniczony do określonych kontrolerów domeny. Potem zrobiłbym to samo z Remove-ADObject.
źródło
repadmin
diagnostyki (którą uruchomiłem, odkąd straciłem nadzieję na jest to problem z nazwą obiektu), więc dobra odpowiedź ... po prostu raczej nie będzie tutaj odpowiedzią. Kiedy diagi się zakończą, zaktualizuję swój post.Mam pomysł, który może po prostu zadziałać, może wydawać się nieco prosty lub nietypowy, ale jeśli dobrze pamiętam, działało to dla mnie w przeszłości z osieroconymi kontami. Jeśli możesz określić dokładną nazwę konta, system, nad którym pracujesz, czy to konto użytkownika, czy konto PC / serwera, spróbuj tymczasowo utworzyć konto tego samego typu i tej samej nazwy. Więc zasadniczo wypełniasz puste pola, że tak powiem i dajesz systemowi dokładnie to, czego chce.
Jeśli więc jest to konto PC / serwera, poproś komputer o ponowne przyłączenie się do domeny o dokładnie takiej nazwie, jakiej szuka, ale tylko w celu utworzenia konta. Lub jeśli jest to konto użytkownika, utwórz ponownie konto użytkownika o takiej samej nazwie itp. może być konieczne uruchomienie polecenia gpupdate / f w wierszu polecenia, aby serwer ponownie połączył nowo utworzone konto z osieroconą jednostką organizacyjną.
Następnie kontynuuj próbę usunięcia osieroconej jednostki organizacyjnej, którą pierwotnie chcesz usunąć. Po oczyszczeniu jednostki organizacyjnej możesz usunąć konto utworzone dla tego zadania.
Mam nadzieję, że to ci pomoże
źródło