Làm cách nào để xóa đối tượng máy tính Active Directory mồ côi này (tốt nhất là với PowerShell)?


20

Tôi đang làm việc từ máy trạm Windows 7, với PowerShell v2.0 và đang cố gắng xóa một đối tượng (mồ côi?) Cụ thể khỏi vùng LostAndFoundchứa trong rừng FL R2 2008 và miền có bật Thùng rác Active Directory và không gặp may mắn với bất cứ điều gì .

Điều quan trọng, tôi cần xóa đối tượng này và chỉ đối tượng này (thay vì xóa mọi đối tượng với thuộc IsDeletedtính, dường như là tất cả những gì tôi có thể tìm thấy trợ giúp).

Tôi cần phải xóa nó, vì để giải quyết mối quan hệ tin cậy bị hỏng, máy tính đã bị tách khỏi miền (có lẽ khiến đối tượng đi đến Thùng rác, sau đó đến LostAndFoundthùng chứa) và chúng tôi muốn cung cấp cho nó tên ban đầu của nó trở lại (dựa trên số thẻ tài sản trên PC). Cố gắng nối lại máy tính với tên miền không đúng với thông báo lỗi dưới đây ( The specified account does not exist)

nhập mô tả hình ảnh ở đây

và cố gắng đổi tên thành tên chính xác khi tên miền đã bị lỗi với thông báo lỗi bên dưới ( The account already exists)

nhập mô tả hình ảnh ở đây

Vì vậy, PC thực tế hiện đang ngồi ở đó với một tên không chính xác, mà tôi cần phải khắc phục.

Tuy nhiên, cố gắng xóa đối tượng AD này sẽ dẫn đến lỗi : The specified account does not exist. Tên phân biệt của đối tượng có \ký tự (dấu gạch chéo ngược), mà tôi giả sử là do nó nằm trong LostAndFoundthùng chứa, và tôi tự hỏi liệu đó có phải là vấn đề không ... và cách khắc phục nó. Tôi đang chạy vỏ của mình như một domain admin, xác minh rằng domain adminsnhóm có toàn quyền kiểm soát và quyền sở hữu đối tượng được đề cập và dường như không thể tìm ra cái này.

Đối tượng trong câu hỏi (phần nào được điều chỉnh lại):

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

Không có gì tôi đã thử dường như làm việc, và tôi đã cố gắng rất nhiều. Trên lưu ý đó, những gì tôi đã thử, dưới đây.

Đầu tiên, với một lệnh ghép ngắn PowerShell một dòng đơn giản:


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

Sau đó, điều tương tự, tham khảo GUID thay thế.


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

Sau đó, đọc giá trị thành một biến đầu tiên. (Đã thử với cả GUID và DN, chỉ hiển thị một, vì chúng có cùng một lỗi).


$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

Sau đó, tôi nghĩ rằng tôi có thể sống với việc phải gọi DSRM thay vì thực hiện nó một cách tự nhiên.


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.

Sau đó, tôi đã nói với địa ngục bằng cách làm cho nó tự động hóa, tôi sẽ chỉ cần nhấp chuột phải và xóa nó thông qua ADSIedit .

nhập mô tả hình ảnh ở đây


Vì vậy, cuối cùng, tôi đang nuốt niềm tự hào của mình và hỏi ở đây. Làm thế quái nào tôi thoát khỏi đối tượng chết tiệt này? Nó rõ ràng tồn tại và sự tồn tại của nó đang gây ra vấn đề, nhưng tất cả những nỗ lực của tôi để xóa nó khỏi Active Directory đều gặp phải những lời nói dối, lời nói dối đáng nguyền rủa và thông báo lỗi.


Cập nhật:

Những thứ khác chưa hoạt động, dựa trên nhận xét, đề xuất và thảo luận với ServerFaulters:

Thoát khỏi 0, như thể \0đại diện cho một byte null.


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

Thoát khỏi toàn bộ \0A, như thể đó là một sự trở lại vận chuyển hoặc dòng mới, như trong DOS (đã thử với `n,` r, `n`r và` r`n). Tất cả trả về cùng một lỗi, vì vậy chỉ hiển thị một lần.


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

Thoát khỏi \0Adạng thức ăn (vâng, hơi tuyệt vọng).


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

Sau đó, tôi nghĩ rằng tôi nên xác định xem \0Anhân vật có phải là vấn đề hay không, vì vậy tôi đã chọn một đối tượng khác mà tôi không quan tâm trong Thùng rác AD có \0Achuỗi trong đó và cố gắng thổi bay nó đi. Nó đã làm việc.


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
Các câu hỏi về Server Fault phải thể hiện sự hiểu biết tối thiểu về công nghệ được đề cập. Mặt khác, bài đăng thường biến thành một diễn đàn thảo luận , thay vì hỏi đáp trực tiếp. Lời khuyên tốt nhất chúng tôi có thể cung cấp cho bạn là thuê một chuyên gia tư vấn để giúp bạn hoặc nghiên cứu thêm về những điều cơ bản của công nghệ này.
TheCleaner

$C = Get-ADObject -Filter { Name -Like '*DEL:*' }chỉ trả lại trẻ mồ côi của bạn? Nếu vậy, làm Remove-ADObject -Identity $C.DistinguishedNameĐó \0là một terminator null.
Ryan Ries

@RyanRies Nó chỉ trả về đối tượng của tôi, nhưng chạy cũng trả lại The specified account does not existlỗi tương tự . Để biết giá trị của nó, tôi cũng đã thử coi \0byte rỗng (và thoát khỏi nó), cũng như coi việc \A0trả lại dòng / ngắt dòng (như trong DOS), cũng không có niềm vui. Nhiều nỗ lực đoán và thoát khỏi các \A0nhân vật đã được đáp ứng The object name has bad syntaxDirectory object not found. :(
HoplessN00b

Bummer ... Tôi sử dụng kỹ thuật đó trên các đối tượng giải quyết xung đột ( '*CNF:*') mọi lúc và nó hoạt động hoàn hảo.
Ryan Ries

Câu trả lời:


3

Theo kỹ sư hỗ trợ của Microsoft mà tôi đã nói chuyện với ... và kỹ sư Microsoft mà anh ấy đã đưa tôi đến ... và người quản lý của họ, câu trả lời ngắn gọn là cách duy nhất để tôi thoát khỏi đối tượng bị nguyền rủa này là thực hiện khôi phục có thẩm quyền trước đó sự xuất hiện của đối tượng này trong LostAndFoundcontainer. Tôi tin rằng tôi cũng có thể loại bỏ nó bằng cách khởi động tất cả các bộ điều khiển miền vào LiveCD và chỉnh sửa thủ công cơ sở dữ liệu AD, nhưng thiếu hai tùy chọn không phải là hai tùy chọn đó, tôi bị mắc kẹt với nó.


Như thế nào và tại sao đây là trường hợp:

Chúng tôi đã repadmin /showobjmetachống lại đối tượng (để xem siêu dữ liệu của nó) và có thể xác định từ isDeletedphiên bản của đối tượng ( 2) rằng nó đã bị xóa, sau đó bất ngờ và không thành công / được khôi phục một phần, đó là nguyên nhân gây ra sự cố. Nó đã được đề xuất, và dường như đối với tôi, sau khi đối tượng được khôi phục, nhưng trước khi thay đổi được sao chép hoàn toàn, nó đã bị xóa một lần nữa, cùng với OU mẹ của nó, khiến khôi phục thất bại và dẫn đến việc nó bị coi là mồ côi phản đối bởi ít nhất một số bộ điều khiển miền của chúng ta, hạ cánh nó trong LostAndFoundcontainer.

Kết quả của việc khôi phục một phần, nó không thể được khôi phục. Do kết quả của đối tượng SAMAccountTypetrống , nó không thể bị xóa (hoặc sửa đổi).

Các SAMAccountTypethuộc tính là một giá trị không thể thay đổi bởi bất kỳ người sử dụng, và cố gắng làm như vậy ném dưới đây lỗi:

nhập mô tả hình ảnh ở đây

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

Chúng tôi không thể khôi phục đối tượng để hệ thống (Trình quản lý tài khoản bảo mật) thiết lập thuộc tính này do trạng thái được khôi phục một phần và chúng tôi không thể xóa nó (hoặc sửa đổi nó) mà không có giá trị hợp lệ cho thuộc tính đó.


Tuy nhiên, vì đây là trường hợp quá thú vị đối với tôi chỉ đơn giản là đi bộ, tôi sẽ chọc ngoáy một lúc và xem liệu tôi có thể đưa ra cách nào khác không, hoặc ít nhất là mở rộng kiến ​​thức của tôi về AD thêm một chút trong nỗ lực. Beats máy in xử lý sự cố ... và thẳng thắn, hóa ra một máy tính nói với tôi "WILL_NOT_PERFORM" là một thách thức tôi không thể cưỡng lại.

Ồ vâng, bạn sẽ thực hiện, chết tiệt!


1

Dựa trên bài đăng này , bạn có thể phải cố gắng xóa đối tượng trên các bộ điều khiển miền cụ thể. Bạn có thể thử chạy Get-ADObject của mình với tham số -Server để xác định xem đối tượng có bị giới hạn ở các DC cụ thể không. Sau đó, tôi sẽ làm tương tự với Remove-ADObject.


Điều đó dường như không phải là vấn đề, vì cả hai DC tại trang web của tôi đều có đối tượng và việc sao chép đang diễn ra rất lâu, nhưng không bao giờ đau đớn để repadminchẩn đoán kỹ lưỡng (mà tôi đã chạy vì mất hy vọng nó là một vấn đề với tên đối tượng), vì vậy câu trả lời tốt ... chỉ không có khả năng là câu trả lời ở đây. Khi các bỉm hoàn thành, tôi sẽ cập nhật bài viết của mình.
HoplessN00b

Dường như là một bước xử lý sự cố hợp lý. Cảm ơn đã bỏ phiếu.
Tim Ferrill

0

Tôi có một ý tưởng rằng chỉ có thể hoạt động, nó có vẻ hơi đơn giản hoặc khác thường, nhưng nếu tôi nhớ chính xác thì điều này đã làm việc cho tôi trong quá khứ với các tài khoản mồ côi. Nếu bạn có thể xác định tên tài khoản chính xác, hệ thống bạn đang làm việc đang tìm kiếm, có thể là tài khoản người dùng hoặc tài khoản PC / Server, hãy thử tạm thời tạo một tài khoản cùng loại và cùng tên. Vì vậy, về cơ bản bạn đang điền vào chỗ trống, để nói và cung cấp cho hệ thống chính xác những gì nó muốn.

Vì vậy, nếu đó là tài khoản PC / máy chủ, hãy cho máy trở lại tên miền với tên chính xác mà nó đang tìm, nhưng chỉ với mục đích tạo tài khoản. Hoặc nếu đó là tài khoản người dùng tạo lại tài khoản người dùng có cùng tên, v.v. bạn có thể cần chạy lệnh gpupdate / f trong dấu nhắc lệnh để máy chủ kết nối lại tài khoản vừa được tạo lại với OU mồ côi.

Sau đó tiến hành cố gắng xóa OU mồ côi mà bạn muốn xóa ban đầu. Khi bạn đã dọn sạch OU, bạn có thể xóa tài khoản bạn đã tạo cho tác vụ này.

Tôi hy vọng điều này sẽ giúp bạn cổ vũ

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.