Bu artık Active Directory bilgisayar nesnesini (tercihen PowerShell ile) nasıl silebilirim?


20

PowerShell v2.0 ile bir Windows 7 iş istasyonundan çalışıyorum ve LostAndFound2008 R2 FL ormanındaki ve Active Directory Geri Dönüşüm Kutusu etkin olan etki alanındaki kaptan belirli bir (artık?) Nesneyi silmeye çalışıyorum ve hiç şansım yok bir şey ile .

Daha da önemlisi, bu nesneyi ve yalnızca bu nesneyi silmem gerekiyor (bunun yerine IsDeletedyardım alabileceğim her şey gibi görünen özellikli her nesneyi silmek yerine ).

Silmem gerekiyor, çünkü kırık bir güven ilişkisini çözmek için, bilgisayar etki alanından ayrıldı (muhtemelen nesnenin Geri Dönüşüm Kutusu'na ve daha sonra LostAndFoundkaba gitmesine neden oluyor ) ve bunu vermek istiyoruz orijinal adı geri (PC'deki varlık etiketi numarasını temel alır). Bilgisayarı doğru adla etki alanına yeniden katılma girişimleri aşağıdaki hata iletisiyle başarısız oldu ( The specified account does not exist)

resim açıklamasını buraya girin

ve zaten etki alanında olduğunda doğru adı yeniden adlandırmaya çalışmak aşağıdaki hata iletisiyle başarısız olur ( The account already exists)

resim açıklamasını buraya girin

bu yüzden gerçek PC şu anda orada düzeltmem gereken yanlış bir adla oturuyor.

Ancak, bu AD nesnesini silinmeye çalışılırken hata verir: The specified account does not exist. Nesnenin ayırt edici adının içinde \(ters eğik çizgi) bir karakter vardır, ki bu da LostAndFoundkapta olmasından kaynaklanıyor ve sorunun bu olup olmadığını merak ediyorum ... ve nasıl düzeltileceğini. Kabuğumu bir olarak çalıştırıyorum domain admin, domain adminsgrubun söz konusu nesnenin tam kontrolüne ve sahipliğine sahip olduğunu doğruladım ve bunu anlayamıyorum.

Söz konusu nesne (biraz düzeltildi):

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

Denediğim hiçbir şey işe yaramıyor ve çok denedim. Bu notta aşağıda denediklerim.

İlk olarak, düz, tek satırlı bir PowerShell cmdlet'i ile:


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

Daha sonra, aynı şey, bunun yerine GUID'e başvuruyor.


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

Ardından, değeri önce bir değişkene okuyun. (Hem GUID hem de DN ile denendi, aynı hatayı verdiğinden yalnızca bir tane gösteriliyor).


$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

Sonra DSRM'yi aramak yerine doğal olarak yaşayabileceğimi düşündüm .


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.

Daha sonra otomatik hale getirerek cehenneme dedim, sadece sağ tıklayıp ADSIedit ile silerim .

resim açıklamasını buraya girin


Sonunda, gururumu yutup burada soruyorum. Bu lanet nesneden nasıl kurtulurum? Açıkça var ve varlığı sorunlara neden oluyor, ancak Active Directory'den silmeye yönelik tüm girişimlerim yalanlarla, lanet olası yalanlarla ve hata mesajlarıyla karşılanıyor.


Güncelleme:

ServerFaulters ile ilgili yorum, öneri ve tartışmalara dayanarak çalışmayan diğer şeyler:

Kaçan 0gibi, \0boş bir bayt temsil eder.


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

Bütün kaçan \0Abir satır başı veya yeni satır sanki DOS gibi, (n, 'r,' n`r ve 'r`n' denenmiş). Hepsi aynı hatayı döndürdü, bu yüzden sadece bir kez gösterildi.


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

\0AForm beslemesi olarak kaçmak (evet, biraz çaresiz kalmak).


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

Sonra \0Akarakterin bile sorun olup olmadığını belirlemem gerektiğini düşündüm , bu yüzden AD Geri Dönüşüm Kutusu'nda içinde \0Adize ile umursamadı farklı bir nesne aldı ve onu uçurmaya çalıştı. İşe yaradı.


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


4
Sunucu Hatası ile ilgili sorular, söz konusu teknolojinin minimum düzeyde anlaşıldığını göstermelidir. Aksi takdirde, gönderi genellikle doğrudan Soru-Cevap yerine bir tartışma forumuna dönüşür . Size verebileceğimiz en iyi tavsiye, size yardımcı olması veya bu teknolojinin temelleri hakkında daha fazla araştırma yapması için bir danışman kiralamaktır.
TheCleaner

Does $C = Get-ADObject -Filter { Name -Like '*DEL:*' }sadece yetim dönmek? Eğer öyleyse, Remove-ADObject -Identity $C.DistinguishedNameBu \0bir boş sonlandırıcıdır.
Ryan Ries

@RyanRies Yalnızca nesneyi döndürüyor, ancak bu da aynı The specified account does not existhatayı döndürüyor . Ne için değer, ben de \0boş bir bayt (ve kaçan) gibi tedavi, \A0hem de bir sevinç olmadan bir satırbaşı / satır sonu (DOS olduğu gibi) tedavi denedim . Tahmin ve kaçma çeşitli girişimler \A0karakterleri ile karşılanmıştır The object name has bad syntaxve Directory object not found. :(
UmutsuzN00b

Bummer ... Bu tekniği çatışma çözme nesneleri ( '*CNF:*') üzerinde her zaman kullanıyorum ve mükemmel çalışıyor.
Ryan Ries

Yanıtlar:


3

Konuştuğum Microsoft destek mühendisine ... ve beni yönlendirdiği Microsoft mühendisine ve yöneticilerine göre, kısa cevap, bu lanetli nesneden kurtulmanın tek yolunun daha önce yetkili bir geri yükleme yapmak bu nesnenin LostAndFoundkaptaki görünümü . Ayrıca tüm etki alanı denetleyicilerini LiveCD'lere önyükleyip AD veritabanını el ile düzenleyerek kendimden kurtulabileceğime ikna oldum, ancak bu iki seçenek dışı kısa, onunla sıkıştım.


Durumun nasıl ve neden olduğu konusunda:

Bir repadmin /showobjmetanesneye karşı (meta verilerine bakmak için) koştuk ve nesnenin silindiğini isDeleted( 2), sonra da beklenmedik ve başarısız / kısmen geri yüklendiğini belirleyebildik, bu da soruna neden oluyor. Nesne geri yüklendikten sonra, ancak değişiklik tamamen çoğaltılmadan önce, ana OU ile birlikte tekrar silindiği ve geri yüklemenin başarısız olmasına neden olduğu ve bunun yetim kaldığı düşünüldüğü önerildi ve bana öyle geliyor gibi görünüyor. en azından bazı etki alanı denetleyicileri tarafından nesneye konarak onu LostAndFoundkapsayıcıya indirir.

Kısmi geri yüklemenin bir sonucu olarak geri yüklenemez. Nesnenin SAMAccountTypeboş olması nedeniyle silinemez (veya değiştirilemez).

SAMAccountTypeNitelik herhangi bir kullanıcı tarafından değiştirilemez bir değeri olduğunu ve bunlara teşebbüs hata altına atar:

resim açıklamasını buraya girin

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

İçinde kısmen geri yüklenen durum nedeniyle sistemin (Güvenlik Hesapları Yöneticisi) bu özelliği ayarlamasını sağlamak için nesneyi geri yükleyemeyiz ve bu özellik için geçerli bir değer olmadan onu silemeyiz (veya değiştiremeyiz).


Ancak, bu sadece uzaklaşmak için çok ilginç bir durum olduğu için, bir süre kurcalayacağım ve bu konuda bir yol bulamadığımı veya en azından bilgimi genişletip genişletemeyeceğimi göreceğim. AD denemede biraz daha fazla. Sorun giderme yazıcıları atıyor ... ve açıkçası, bana "WILL_NOT_PERFORM" diyen bir bilgisayarın karşı koyamayacağım bir zorluk olduğu ortaya çıkıyor.

Oh evet sahne alacaksın, kahretsin!


1

Bu gönderiye dayanarak , nesneyi belirli etki alanı denetleyicilerinden silmeye çalışmanız gerekebilir. Nesnenin belirli DC'lerle sınırlı olup olmadığını belirlemek için Get-ADObject öğenizi -Server parametresiyle çalıştırmayı deneyebilirsiniz. Sonra aynısını Remove-ADObject ile yapardım.


Sitemdeki DC'lerin her ikisi de nesneyi içerdiğinden ve çoğaltma uzun zamandır düzgün bir şekilde mırıldanırken, bu sorun gibi görünmüyor, ancak kapsamlı bir repadminteşhis yapmak için asla acı vermiyor (ki nesne adı ile ilgili bir sorun), çok iyi bir cevap ... burada cevap olması pek olası değil. Diags tamamlandığında, yazımı güncelleyeceğim.
HopelessN00b

Zaten makul bir sorun giderme adımı gibi görünüyordu. Oylama için teşekkürler.
Tim Ferrill

0

Sadece işe yarayabilecek bir fikrim var, biraz basit veya sıra dışı görünebilir, ancak doğru hatırlıyorsam bu geçmişte benim için yetim hesaplarla işe yaradı. Tam hesap adını belirleyebilirseniz, üzerinde çalıştığınız sistem bir kullanıcı hesabı veya PC / Sunucu hesabı olsun, geçici olarak aynı türde ve aynı ada sahip bir hesap oluşturmaya çalışın. Yani aslında boşlukları dolduruyorsunuz, konuşmak ve sisteme tam olarak ne istediğini vermek için.

Bu nedenle, bir PC / sunucu hesabı ise, tam olarak aradığı adla bir etki alanına geri katılan bir makine bulundurun, ancak yalnızca hesabı oluşturmak için. Veya bir kullanıcı hesabıysa, kullanıcı hesabını tam olarak aynı ada, vb. sunucunun yeni oluşturulan hesabı yetimsiz OU'ya yeniden bağlamasını sağlamak için komut isteminde gpupdate / f komutunu çalıştırmanız gerekebilir.

Ardından, başlangıçta silmek istediğiniz yetimsiz OU'yu silmeye çalışın. Kuruluş birimini temizledikten sonra, bu görev için oluşturduğunuz hesabı silebilirsiniz.

Umarım bu sana şerefe yardımcı olur

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.