The Active Directory リサイクル ビンにより、ユーザーは削除された Active Directory オブジェクトを、バックアップから復元したり、Active Directory Domain サービスを再起動したり、ドメイン コントローラー(DC)を再起動したりすることなく復旧できます。
リサイクル ビンでのオブジェクト復旧がどのように機能するのかを具体的に見ていき、その制限についても説明します。
厳選された関連コンテンツ:
AD Recycle Bin を使った Active Directory オブジェクトの復元
AD Recycle Bin が有効になっている場合、オブジェクトが削除されると、そのほとんどの属性が一定期間保持され、必要に応じてオブジェクトを復元できるようになります。この期間中、オブジェクトは deleted object 状態になります。(この時間の長さは msDS-DeletedObjectLifetime 属性で定義されます。既定では、その値は tombstoneLifetime 属性の値です。msDS-deletedObjectLifetime 属性の値が null の場合、または属性が存在しない場合は、tombstoneLifetime 属性の値として解釈されます。さらに tombstoneLifetime の値がない場合は、両方の値が 60 日に既定されます。)
オブジェクトが deleted object 状態にある時間が過ぎると、オブジェクトは recycled object になります。recycled object は、isRecycled 属性が付け加えられて TRUE に設定された tombstone に非常によく似て見えます。tombstone と同様に、そのほとんどの属性は削除され、tombstoneLifetime 属性で指定された期間、Active Directory に保持されます。その後、Active Directory のガベージ コレクションによってクリーンアップされます。
Recycle Bin を有効にして削除されたオブジェクトのライフサイクルは、次のようになります。
オブジェクトが Recycle Bin に入るとどう変わるか
Recycle Bin は tombstone よりも多くのオブジェクト属性を保持しますが、復元されたオブジェクトは元のオブジェクトとまったく同一ではありません。どう変わるのか見てみましょう。こちらは、私が削除しようとしているユーザーアカウントです。
こちらが、Recycle Bin 内で「削除済みオブジェクト」状態になっているオブジェクトです。
属性の大部分は保持されますが、いくつか重要な違いがあります:
- オブジェクトは移動されました。 オブジェクトは、パーティションの Deleted Objects コンテナーに移動されました。
- オブジェクトの名前が変更されました。 オブジェクトの名前は、Common-Name DEL:Object-Guid. を使用して更新されました。
- このオブジェクトには、いくつかの新しい属性があります。 isDeleted 属性は TRUE の値を持ち、lastKnownParent 属性が設定されています。新しい属性として msDS-LastKnownRDN が、オブジェクトの最後に知られている相対識別名(relative distinguished name)で設定されます(この属性により、リサイクル ビンは、オブジェクトのリネームによって元の RDN が切り詰められた場合でも、復元時にオブジェクトの RDN を適切にリセットできます)。
- 2つの属性が削除されました。 次の2つの属性:objectCategory および sAMAccountType, は、オブジェクトが削除されると常にオブジェクトから削除されます。オブジェクトが復元された場合、objectCategory の値はオブジェクトの objectClass 属性にある最も具体的な値に自動的に設定され、sAMAccountType の値は、userAccountControl(ユーザー オブジェクトの場合)または groupType 属性(グループ オブジェクトの場合)の値から計算されます。
目ざとい読者なら、私のスクリーンショットにも manager と memberOf 属性が見当たらないことにも気づくかもしれません。実際はただ隠れているだけです。これら2つの属性はどちらも link-valued(つまり、他のオブジェクトへの参照を含んでいます)で、私が使ったツール(LDP)では、“Return Deactivated Links”という巧妙な名前が付けられたコントロールを設定しない限り、無効化されたリンクは返されません。もしそのコントロールを有効にしていれば、属性とその値はスクリーンショットに表示されていたはずですが、この学びどころを逃してしまっていたでしょう。
AD のごみ箱からオブジェクトを復元する方法
Windows Server 2012 以前は、AD のごみ箱からオブジェクトを復元するには、LDAP ツールまたは PowerShell を使って削除済みのすべてのオブジェクトを一覧表示し、長いリストの中から目的のオブジェクトを探し出し、さらに別の PowerShell コマンドでそれを復元する必要がありました。AD のごみ箱がとても役に立つものであってよかったです。使うのが楽しいわけではありませんでしたから!
これで、Active Directory 管理センターでごみ箱機能を利用できます:
ご覧のとおり、検索フィルターを使えば関心のある削除済みオブジェクトをすばやく見つけられます。
オブジェクトを復元するには、ウィンドウ右側の[タスク]一覧で 復元 をクリックするだけです。復元されたオブジェクトは次のようになります:
Active Directory のごみ箱(Recycle Bin)の欠点
ごみ箱(Recycle Bin)はオブジェクトの復旧を大幅に簡単にしますが、いくつかの制限も見つかっています。オブジェクトは比較的短い期間しか保持されず、また一部の属性は失われます。さらに、ごみ箱には次のような追加の欠点があります:
- Active Directory のごみ箱(Recycle Bin)を有効にするには、スキーマの変更が必要です。そのため、ごみ箱をオンにした後は、フルフォレスト回復(full-forest recovery)なしにはオフにできません。
- Active Directory は少し大きくなります。 AD のごみ箱(Recycle Bin)を有効にすると、削除されたオブジェクトは tombstone よりもはるかに多くの属性を保持し、より長く保持されます。その結果、Active Directory は以前より少し多くの容量を使用する可能性があります。
- ごみ箱(Recycle Bin)を有効にすると、すべての tombstone が削除されます。 ごみ箱を有効にすることによる最も大きな影響は、フォレスト内のすべての tombstone オブジェクトが直ちに存在しなくなることです。多くの管理者が、この結果を“痛い目”を見ながら学んできました。
ただし、これらの問題は、AD Recycle Bin を有効にすることによるメリットを上回るものではありません。
AD Recycle Bin なしでの Active Directory オブジェクト復旧
AD Recycle Bin を有効にする価値を説明するために、AD Recycle Bin が有効になっていない場合に AD オブジェクトを復旧する際に何が関係するのかを見ていきましょう。
AD Recycle Bin が有効になっていないドメインでは、Active Directory オブジェクトを削除すると、そのオブジェクトは tombstone になります。多数の属性が削除された状態のこのオブジェクトは、ドメインの tombstoneLifetime で指定された期間、パーティションの Deleted Objects コンテナーに保持されます。この期間中は技術的には復旧可能ですが、失われた属性は一般に復旧できないと考えられます。tombstoneLifetime の値に達すると、オブジェクトはガベージコレクションされて存在しなくなります。このライフサイクルを以下に示します:
LDP ユーティリティの Modify 機能を使用して、この tombstone をどのように再アクティブ化できるかを見てみましょう:
- tombstone を右クリックし、Modify を選択します。
- Edit Entry セクションで、Attribute フィールドに値 “isDeleted” を入力し、 Delete のラジオボタン( Operation の下)を選択してから、 Enter ボタンをクリックして、エントリを Entry List に追加します。
- Edit Entry セクションで、Attribute フィールドに “distinguishedName” を入力し、Values フィールドに削除される前のオブジェクトの distinguished name を入力します。次に Replace のラジオボタン( Operation の下)を選択し、 Enter ボタンをクリックして、エントリを Entry List に追加します。
lastKnownParent 属性が役に立つ可能性があると言っていたのを覚えていますか? ええ、そのオブジェクトが削除される前の dn が分からない場合は、次のトリックを試してください。現在の dn を取り、NULL で終端する文字(“A”)およびその右側のすべてを、 lastKnownParent 属性の現在の値に置き換えます。 - パネルの左下にある Extended オプションを選択します。
- Run ボタンをクリックします。
すると、再アニメーションされたオブジェクトを再び見つけて、その見た目を確認できます。
ご覧のとおり、技術的には削除されたユーザーオブジェクトを復旧できました。しかし、削除前に保持していた情報のほとんどが欠けています。
(理屈の上では)この問題は、Active Directory の VSS スナップショットを定期的に取得することで回避できるかもしれません。そうすれば、削除されたオブジェクトを復旧する必要が出たときに、「あとは」オブジェクトが削除される前に取得されたバックアップを見つけ、NTDSUTIL でスナップショットをマウントし、LDAP ユーティリティでマウント済みのスナップショットに接続して、オブジェクトを特定し、それをエクスポートして… まあいいです。
でも待ってください、もっと悪いことがあります。
「Deleted Objects(削除されたオブジェクト)」コンテナーは、永遠に残るものではありません。まさに名前どおりの tombstoneLifetime プロパティ(CN=Directory Service,CN=Windows NT,CN-Services,CN=Configuration, ForestDistinguishedName オブジェクト)では、削除されたオブジェクトが Active Directory から完全に削除されるまでの経過日数が定義されます。
の値は tombstoneLifetime ドメインのフォレストを作成する際に関与した Windows Server のバージョンに基づいて決まります。2003 年より新しいバージョンの Windows Server を使って作成したフォレストでは、デフォルトで 180 日(Microsoft の現在の推奨設定)に設定されます。古い実装では、デフォルトは 60 日です。 tombstoneLifetime プロパティの動作には、実際に注目する価値があり、かなり面白いです。値が存在する場合、tombstone の寿命は指定された値になります。値が 2 未満でない限り、tombstone の寿命は次のようにデフォルト設定されます。つまり、値が 2 未満の場合、tombstone の寿命はデフォルトで 60 日(Windows 2000 Server から Windows Server 2008)または 2 日(Windows Server 2008 R2 以降)になります。値が指定されていない場合は、その値は 60 日です。
環境内の tombstoneLifetime の値が気になる場合、この PowerShell スクリプトがそれを返します(AD DS と AD LDS のツールが必要です):
(Get-ADObject -Identity "CN=Directory Service,CN=Windows NT,CN=Services,$((Get-ADRootDSE).configurationNamingContext)" -Properties *).tombstoneLifetime
オブジェクトが Deleted Objects コンテナ内で tombstoneLifetime を消費すると、Active Directory のゴミ箱収集(garbage collection)によって論理的に削除されます。その時点でオブジェクトは消え、二度と戻ってくることはありません。
Netwrix でできること
AD Recycle Bin は、最近削除されたオブジェクトを復元するのに役立つツールです。より包括的な解決策としては Netwrix Identity Recovery を検討してください。これにより、フォレストの mdDS-DeletedObjectLifetime を超えてしまい、AD Recycle Bin ではもう復旧できないバックアップ済みオブジェクトを復元できるようになります。
共有する
もっと詳しく
著者について
Kevin Joyce
プロダクトマネジメント担当ディレクター
Netwrix のプロダクトマネジメント担当ディレクター。Kevin はサイバーセキュリティに情熱を持ち、特に攻撃者が組織の環境を悪用するために用いる戦術や手法を理解することに注力しています。Active Directory と Windows のセキュリティに焦点を当てたプロダクトマネジメントでの 8 年の経験を通じて、その情熱を活かし、組織がアイデンティティ、インフラ、データを保護できるようなソリューションの構築を支援しています。