この孤立したActive Directoryコンピューターオブジェクトを削除する方法(できればPowerShell)?


20

PowerShell v2.0を使用してWindows 7ワークステーションで作業してLostAndFoundおり、Active Directoryのごみ箱が有効になっている2008 R2 FLフォレストおよびドメインのコンテナーから特定の(孤立した?)オブジェクトを削除しようとしています。何でも

重要なのは、このオブジェクトとこのオブジェクトのみを削除する必要があることです(IsDeletedプロパティを持つすべてのオブジェクトを削除するのではなく、ヘルプを見つけることができるようです)。

壊れた信頼関係を解決するために、コンピュータをドメインから解いたので、私は(おそらくオブジェクトがごみ箱に移動させ、その後に、それを削除する必要があるLostAndFoundコンテナ)、そして我々はそれを与えるしたいのですが元の名前(PCの管理タグ番号に基づいています)。コンピューターを正しい名前でドメインに再結合しようとすると、次のエラーメッセージ(The specified account does not exist)で失敗しました

ここに画像の説明を入力してください

すでにドメインにある名前を正しい名前に変更しようとすると、次のエラーメッセージが表示されて失敗します(The account already exists

ここに画像の説明を入力してください

そのため、実際のP​​Cは現在間違った名前でそこに座っているので、修正する必要があります。

ただし、このADオブジェクトを削除しようとすると、エラーが発生しますThe specified account does not exist。オブジェクトの識別名には\(バックスラッシュ)文字が含まれていますが、これはLostAndFoundコンテナ内にあるためと思われますが、それが問題なのかどうかと、それを修正する方法について疑問に思っています。私はシェルを実行していますが、グループが問題のオブジェクトの完全な制御と所有権を持っているdomain adminことを確認しましたが、domain adminsこれを理解できないようです。

問題のオブジェクト(やや編集済み):

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

私が試したものは何もうまくいかないようで、私はたくさん試しました。そのノートでは、私が試したものを以下に示します。

最初に、単純な1行の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

次に、同じこと、代わりに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

次に、最初に値を変数に読み込みます。(GUIDとDNの両方で試してみましたが、同じエラーが発生するため、一方のみを表示しました)。


$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

それから、DSRMをネイティブに呼び出す代わりに呼び出す必要があります。


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.

それから私はそれを自動化することで地獄に言った、私はちょうどそれを右クリックしてADSIeditを通して削除する

ここに画像の説明を入力してください


だから、最後に、私は自分のプライドを飲み込んでここに尋ねています。 このいまいましいオブジェクトをどうやって取り除くのですか? 明らかに存在し、その存在が問題を引き起こしていますが、Active Directoryから削除しようとする私の試みはすべて、嘘、ひどい嘘、エラーメッセージに遭遇します。


更新:

ServerFaultersとのコメント、提案、議論に基づいて、機能しなかった他のこと:

がnullバイトを表す0かのように、をエスケープし\0ます。


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

\0ADOSのように、キャリッジリターンまたは改行であるかのように、全体をエスケープします( `n、` r、 `n`rおよび` r`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

\0Aフォームフィードとしてエスケープします(ええ、少し必死になります)。


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

それから、その\0Aキャラクターが問題なのかどうかを判断する必要があると考えた ので、ADごみ箱で気にならない別のオブジェクトを選び、その中に\0A文字列を入れて吹き飛ばそうとしました。出来た。


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
サーバーフォールトに関する質問は、問題のテクノロジーに関する最小限の理解を示すものでなければなりません。 それ以外の場合、投稿は通常の Q&Aではなくディスカッションフォーラムになります。最善のアドバイスは、コンサルタントを雇って支援するか、この技術の基礎についてさらに調査することです。
TheCleaner

ない$C = Get-ADObject -Filter { Name -Like '*DEL:*' }だけで、あなたの孤児を返しますか?もしそうなら、Remove-ADObject -Identity $C.DistinguishedNameそれ\0はヌルターミネーターです。
ライアンリース

@RyanRies私のオブジェクトのみを返しますが、それを実行しても同じThe specified account does not existエラーが返されます。それが価値があるもの\0として、私はまた、nullバイトとして扱い(そしてそれをエスケープする)、\A0キャリッジリターン/ラインブレイクとして(DOSでそうであるように)、喜びもなしに扱いました。推測とエスケープで様々な試み\A0の文字がで満たされているThe object name has bad syntaxDirectory object not found。:(
HopelessN00b

残念なことに、私はこの手法を競合解決オブジェクト('*CNF:*')で常に使用しており、完全に機能しています。
ライアンリース

回答:


3

私が話したマイクロソフトのサポートエンジニアによると...彼が私にエスカレートしたマイクロソフトエンジニアとそのマネージャーによると、短い答えは、この呪われたオブジェクトから自分を取り除く唯一の方法は、以前に権限のある復元を行うことであるということですLostAndFoundコンテナ内のこのオブジェクトの外観。すべてのドメインコントローラーをLiveCDで起動し、ADデータベースを手動で編集することでも解決できると確信していますが、これらの2つの非オプションを除いて、私はそれにこだわっています。


これがどのようにそしてなぜそうであるかに関して:

私たちは走ったrepadmin /showobjmeta(そのメタデータへの覗き見に)オブジェクトに対して、オブジェクトのから決定することができましたisDeletedバージョン(2それが削除されたこと)、そして予期せずに失敗した/部分的に問題を引き起こしているものである、復元されました。オブジェクトが復元された後、変更が完全にレプリケートされる前に、親OUとともに再び削除されたため、復元が失敗し、孤立したと見なされることが示唆されました少なくとも一部のドメインコントローラーがオブジェクトをLostAndFoundコンテナに格納します。

部分的な復元の結果、復元できません。 オブジェクトSAMAccountTypeが空の結果として、削除(または変更)できません。

このSAMAccountType属性はどのユーザーでも変更できない値であり、変更しようとすると以下のエラーがスローされます。

ここに画像の説明を入力してください

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

部分的に復元された状態のため、オブジェクトを復元してシステム(セキュリティアカウントマネージャー)にこの属性を設定させることはできません。また、その属性に有効な値がないと、オブジェクトを削除(または変更)できません。


しかし、これは私にとってはあまりにも興味深いので、単に離れて歩くには、しばらくの間、私はこれを回避する方法を思い付かないか、少なくとも私の知識を広げることができないかどうかを調べます試みでもう少しAD。プリンターのトラブルシューティングをしのぐ...そして率直に言って、「WILL_NOT_PERFORM」と私に言っているコンピューターは、私が抵抗できない挑戦であることがわかりました。

ああ、そうだよ、くそー!


1

この投稿に基づいて、特定のドメインコントローラー上のオブジェクトを削除する必要がある場合があります。オブジェクトが特定のDCに制限されているかどうかを判断するために、-Serverパラメーターを指定してGet-ADObjectを実行してみてください。その後、Remove-ADObjectでも同じことをします。


それは私のサイトでは、両方のDCは、オブジェクトが含まれているそうであるように、問題ではないようですし、レプリケーションが長い適切にハミングされますが、それは決して徹底的に行うには痛いないrepadmin私は希望を失って以来、実行してきたこれ(診断をオブジェクト名に問題があるため)とても良い答えです...ここで答えになる可能性は低いです。診断が完了したら、投稿を更新します。
HopelessN00b

とにかく合理的なトラブルシューティング手順のように思えた。投票してくれてありがとう。
ティムフェリル

0

私はちょうどうまくいくかもしれないという考えを持っています、それは少し簡単であるか、普通ではないように見えるかもしれませんが、私が正しく覚えていれば、これは孤立したアカウントで過去に私のために働いていました。正確なアカウント名を確認できる場合、作業中のシステムは、ユーザーアカウントまたはPC /サーバーアカウントのいずれであっても、同じタイプと同じ名前のアカウントを一時的に作成しようとします。つまり、基本的に空白を埋めているので、いわば、システムに必要なものを正確に提供することになります。

そのため、PC /サーバーアカウントの場合は、アカウントを作成する目的でのみ、探している正確な名前でマシンをドメインに戻します。または、ユーザーアカウントの場合は、まったく同じ名前などでユーザーアカウントを再作成します。コマンドプロンプトでコマンドgpupdate / fを実行して、孤立したOUで新しく再作成されたアカウントをサーバーに再接続する必要がある場合があります。

次に、最初に削除したい孤立したOUを削除しようとして続行します。OUをクリーンアップしたら、このタスク用に作成したアカウントを削除できます。

これが応援に役立つことを願っています

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.