Active Directory ドメイン サービスとは、システム管理者が組織内のユーザーやコンピューターなどのリソースを一元的に管理するためのディレクトリ サービスです。Active Directory ドメイン サービスでは、管理の単位を「ドメイン」と呼び、そのドメインを管理する役割を持つコンピューターを「ドメイン コントローラー」と呼びます。
ドメイン コントローラーでは、AD データベース上に、ドメイン内のユーザーやコンピューター、グループなどを AD オブジェクトとして管理しています。ドメインの運用においては、社員の退職やコンピューターの入れ替えなどに伴い、不要となった AD オブジェクトを削除することがあります。しかし、管理作業の過程で、本来削除すべきではない AD オブジェクトを誤って削除してしまうといったケースも発生しえます。このような場合に、削除済みの AD オブジェクトを復元したいと考えることがあります。削除された AD オブジェクトを復元する際に有用なのが、Active Directory のごみ箱と呼ばれる機能です。
本記事では、Active Directory のごみ箱について、基本的な仕組みや設定、利用方法について紹介します。
Active Directory ごみ箱とは?
Active Directory のごみ箱とは、AD データベースから削除された AD オブジェクトを復元するための機能です。
Active Directory では、ドメインで管理しているユーザーやコンピューターを AD オブジェクトとして管理しています。各 AD オブジェクトには識別子として、それぞれ固有の セキュリティ ID(SID) が割り当てられています。この SID は、AD オブジェクトが作成されたタイミングで自動的に割り当てられます。
管理者が誤って特定のユーザーを削除してしまった場合、同じ名前(CN)のユーザーを新たに作成したとしても、新しく作成されたユーザー アカウントには異なる SID が割り当てられるため、Active Directory の内部的には「別のユーザー」として扱われます。そのため、誤って削除したユーザー アカウントやコンピューター アカウントを元どおり利用したい場合には、同名のアカウントを再作成するのではなく、削除された AD オブジェクトそのものを復元する必要があります。
管理者が AD オブジェクトを削除した場合、直ちに AD データベースから完全に削除されるわけではありません。削除されたオブジェクトは、isDeleted 属性が True に設定された状態で、隠しコンテナである「Deleted Objects」へ移動されます。この状態では、AD オブジェクトの多くの属性が削除されており、隠しコンテナからオブジェクトを戻したとしても、削除前の完全な状態に復元することはできません。
一方で、ドメインにおいて Active Directory のごみ箱機能を有効化しておくと、AD オブジェクトは削除時に属性情報を保持したまま隠しコンテナへ移動されます。そのため、ごみ箱が有効な環境では、隠しコンテナから AD オブジェクトを復元することで、削除前とほぼ同じ状態のまま AD オブジェクトを再利用することが可能になります。
通常の AD オブジェクトのライフサイクル
Active Directory データベースに作成されたオブジェクトには、ライフサイクルが存在します。このライフサイクルは、Active Directory のごみ箱機能が有効か無効かによって異なります。ごみ箱の機能が無効(既定の動作)の場合における、AD オブジェクトのライフライクルは以下の通りです。

Active Directory のごみ箱機能が有効になっていない環境では、AD オブジェクトが削除されると、直ちに 「廃棄済み(Tombstone)」 の状態になります。廃棄済みとなった AD オブジェクトは、isDeleted 属性が True に設定された状態で、隠しコンテナである「Deleted Objects」へ移動され、ほとんどの属性値が削除された状態となります。
廃棄済み状態の AD オブジェクトは、既定では 180 日間保持されます。この期間を Tombstone Lifetime と呼び、期間が経過すると、次回のガーベッジコレクションの実行時に AD データベースから完全に削除されます。
廃棄済み状態の AD オブジェクトを復元するには、LDP.exe などのツールを使用して、対象オブジェクトの isDeleted 属性を削除します。ただし、この状態では削除前の属性値の多くが既に失われているため、復元後に必要な属性値を手動で再設定する必要があります。
ガーベッジ コレクション
AD オブジェクトを削除して「Deleted Objects」コンテナに移動してから、Tombstone Lifetime の期間が経過すると、そのオブジェクトはガーベッジコレクションの対象となります。ガーベッジコレクションは、既定では 12 時間に 1 回の間隔で実行され、対象となったオブジェクトを AD データベースから完全に削除します。
管理者が手動でガーベッジコレクションを実行することも可能で、その際には repadmin コマンドを使用します。
ごみ箱有効時の AD オブジェクトのライフサイクル
Active Directory のごみ箱機能が有効な環境では、AD オブジェクトを削除しても、すぐに属性が消去されることはありません。削除された AD オブジェクトは、すべての属性を保持したまま、isDeleted 属性が True に設定されて隠しコンテナへ移動されます。この状態を 「削除済み状態(Deleted)」 と呼びます。
ごみ箱の機能が有効の場合における、オブジェクトのライフライクルは以下の通りです。

削除済み状態の AD オブジェクトは、Active Directory 管理センターにある「Active Directory のごみ箱」機能を利用することで、削除前と同じ状態に簡単に復元することが可能です。削除済み状態は、既定で 180 日間保持されます。
AD オブジェクトが削除済み状態となってから 180 日が経過すると、オブジェクトは 「リサイクル済み状態(Recycled)」 に移行します。この状態では、AD オブジェクトの多くの属性が消去されており、isDeleted 属性を削除することでオブジェクト自体を復元することは可能ですが、属性値は削除されたままとなります。リサイクル済み状態も、既定で 180 日間保持されます。リサイクル済み状態となってからさらに 180 日が経過すると、次回のガーベッジコレクションの実行時に、AD オブジェクトは AD データベースから完全に削除されます。
ごみ箱有効の要件
Active Directory ごみ箱の機能を有効にすると、AD オブジェクトを削除しても属性情報を維持した状態にすることができます。そのため、誤って削除した AD アカウントを容易に復元することができます。
ごみ箱の機能を利用するためのシステム要件は以下の2つです。
- フォレストの機能レベルが Windows Server 2008 R2 以上
- Active Directory ごみ箱の機能を有効
Active Directory ごみ箱の機能は Windows Server 2008 R2 からサポートされています。しかしながら、Windows Server 2008 R2 の OS ではごみ箱の機能を利用する専用のインターフェイスが用意されていなかったため、LDP.exe もしくは PowerShell コマンドレットで削除済みオブジェクトを復元する必要がありました。
Windows Server 2012 以降の OS から、Active Directory ごみ箱を利用する機能が提供されました。機能の有効化や削除済みオブジェクトの復元などの作業は、[Active Directory 管理センター] の管理ツールにて行えます。
ごみ箱の有効化手順
Active Directory のごみ箱を有効にする手順を紹介します。ごみ箱の有効化は [Active Directory 管理センター] の管理ツールより行えますが、Windows Server 2008 R2 の OS のドメイン コントローラーの場合には PowerShell コマンド レットでごみ箱を有効化する必要があります。
ごみ箱を有効化したら元に戻すことはできません。ごみ箱を有効化した後に元に戻したい場合には、ドメイン内の全てのドメイン コントローラーにてバックアップからリストアする必要があります。元に戻す可能性がある場合には、ごみ箱を有効化する作業をする前に、全台のドメイン コントローラーにてバックアップを採取しておいてください。
ドメイン コントローラーにおいて、何等かの設定を変更を行う時、バックアップを作業前に取得しておき、問題があった場合にリストアしたいということがあります。 今回は、ドメイン コントローラーのバックアップ、リストアを行うにおいて必要な知識につ[…]
詳細な手順は以下の通りです。
Active Directory 管理センターにてごみ箱を有効化
Windows Server 2012 以降の OS のドメイン コントローラーでは、[Active Directory 管理センター] にてごみ箱を有効化できます。
1) ごみ箱を有効化するドメインの任意のドメイン コントローラーに管理者権限をもつユーザーでログオンします。
2) [Windows 管理ツール] にて [Active Directory 管理センター] を開きます。
3) 画面の左ペインにて、対象のドメインを選択し、右ペインにある [ごみ箱を有効化] をクリックします。

4) [このアクションを実行しますか? 一度有効にしたごみ箱は無効にできません。] と表示されたら [OK] をクリックします。

5) [Active Directory 管理センター] を更新すると、削除済みオブジェクトが管理される [Deleted Objects] コンテナーが表示されます。

PowerShell コマンドレットにてごみ箱を有効化
Windows Server 2008 R2 の OS のドメイン コントローラーの場合には、PowerShell でごみ箱を有効化する必要があります。
1) ごみ箱を有効化するドメインの任意のドメイン コントローラーに管理者権限をもつユーザーでログオンします。
2) 管理者権限で PowerShell を開きます。
3) 以下のコマンドを実行して、以下のコマンドレットを実行します。
削除済みオブジェクトの復元手順
Active Directory ごみ箱を有効化しているドメイン環境では、削除済み状態の AD オブジェクトを比較的容易に復元できます。復元作業は通常、[Active Directory 管理センター] から実施できますが、ドメイン コントローラーが Windows Server 2008 R2 の場合は [Active Directory 管理センター] を利用できないため、PowerShell のコマンドレットを使用して復元する必要があります。
詳細な手順は以下の通りです。
Active Directory 管理センターにて削除済みオブジェクトを復元
Windows Server 2012 以降の OS のドメイン コントローラーでは、[Active Directory 管理センター] にて削除済み状態の AD オブジェクトを復元できます。
1) 任意のドメイン コントローラーに管理者権限をもつユーザーでログオンします。
2) [Windows 管理ツール] にて [Active Directory 管理センター] を開きます。
3) 画面の左ペインにて、対象のドメインを選択し、中央ペインにある [Deleted Objects] のコンテナをダブルクリックします。

4) 復元したい対象の削除済み AD オブジェクトを右クリックして、[復元] をクリックします。

PowerShell コマンドレットにて削除済みオブジェクトを復元
Windows Server 2008 R2 の OS のドメイン コントローラーの場合には、PowerShell で削除済みの AD オブジェクトを復元する必要があります。
1) 任意のドメイン コントローラーに管理者権限をもつユーザーでログオンします。
2) 管理者権限で PowerShell を開きます。
3) 以下のコマンドを実行して、削除済みのオブジェクトの CN を検索します。
赤マーカーの部分は、環境におじて変更してください。-LDAPFilter オプションには、検索する対象の AD オブジェクトの CN 名を指定します。上記の例の場合は、testuser01 という名前の AD オブジェクトを検索しています。フィルタの指定の際には、名前の後に必ず “*“(アスタリスク)を追加してください。
実行結果例:
PS C:\> Get-ADObject -LDAPFilter “(name=testuser01*)” -SearchBase “cn=Deleted Objects,DC=nekomaru,DC=com” -IncludeDeletedObjects
Deleted : True
DistinguishedName : CN=testuser01\0ADEL:038ec182-f95b-45a3-b87b-62cbe09b5b2b,CN=Deleted Objects,DC=nekomaru,DC=com
Name : testuser01
DEL:038ec182-f95b-45a3-b87b-62cbe09b5b2b
ObjectClass : user
ObjectGUID : 038ec182-f95b-45a3-b87b-62cbe09b5b2b
PS C:\>
赤マーカーの部分は、検索結果の削除済み AD オブジェクトの DN です。<ユーザー名>\0ADEL:<GUID> の形式の DN となります。
4) 以下のコマンドを実行して、対象の削除済みのオブジェクトを復元します。
Restore-ADObject <削除済みオブジェクトの DN>
実行結果例:
