【AD DS】ADゴミ箱とは?基本知識と設定手順について解説!

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) が割り当てられています。AD オブジェクトの SID は、AD オブジェクトを作成したタイミングにて自動で割り当てられます。

管理者が誤って特定のユーザーを削除してしまった場合、同じ名前(CN)のユーザーを新規作成したとしても、作成したユーザー アカウントの AD オブジェクトに割り当てられる SID が異なるため、AD の内部処理としては「別ユーザー」として扱われます。誤って削除したユーザー アカウントやコンピューター アカウントをまた利用したい場合には、そのアカウントの AD オブジェクト自体を復元する必要があります。

管理者が AD オブジェクトを削除すると、すぐにオブジェクトのデータが AD データベースから削除されるのではなく、オブジェクトの isDeleted 属性の値が True となって隠しコンテナ(Deleted Objects)に移動されます。この時に、AD オブジェクトのほとんどの属性値が削除された状態となり、隠しコンテナから AD オブジェクトを戻しても、完全に元の状態に戻すことはできません。

しかし、ドメインにて Active Directory のごみ箱の機能を有効にしておけば、AD オブジェクトが削除される時に属性を保持した状態で隠しコンテナに移動されるようになります。そのため、ごみ箱が有効の設定であれば、隠しコンテナから AD オブジェクトを戻したら、削除前と同じように AD オブジェクトがそのまま利用できます。

 

ごみ箱の機能は既定で無効であり、ごみ箱を利用する場合には有効にする必要があります
 

通常の AD オブジェクトのライフサイクル

Active Directory データベースに作成したオブジェクトには、ライフサイクルがあります。ライフサイクルは、”Active Directory のごみ箱” の機能が有効/無効かどうかで異なります。ごみ箱の機能が無効(既定の動作)の前のオブジェクトのライフライクルは以下の通りです。

Active Directory ごみ箱の機能が有効になっていない場合、AD オブジェクトが削除されると、すぐに AD データベースからデータが削除される「廃棄済み」(Tombstone)の状態となります。廃棄済みの AD オブジェクトは、isDeleted 属性の値が True となって隠しコンテナ(Deleted Objects)に移動されて、ほとんどの属性値が消去された状態です。

廃棄済みの状態のオブジェクトは既定で 180 日間保存され、180 日を経過したら次のガーベッジコレクションのタイミングにて AD データベースから完全に削除されます。

廃棄済みの状態のオブジェクトを復元するには、LDP.exe を実行して対象のオブジェクトの isDeleted 属性を削除します。ただし、AD オブジェクトの削除前の属性値はほとんど削除されているため、必要な属性値は再設定する必要があります。

ガーベッジ コレクション

AD オブジェクトを削除し、Deleted Objects コンテナに移動されてから Tombstone Lifetime の期間が経過すると、ガーベッジコレクションの対象となります。ガーベッジコレクションの処理は、既定で 12 時間に1回の間隔で実行されます。

手動でガーベッジコレクションが実行するコマンドは以下の通りです。

repadmin /setattr “” “” doGarbageCollection add 1

 

ごみ箱有効時の AD オブジェクトのライフサイクル

既定の設定では、AD オブジェクトを削除すると「廃棄済み」の状態となり、オブジェクトのほとんどの属性が消去されてしまいます。廃棄済みのオブジェクトにて isDeleted 属性を削除して、オブジェクト自体を回復されることはできますが、属性値の設定が消去されているため、完全に元の状態に戻せないリスクがあります。Active Directory のごみ箱を有効にすると、AD オブジェクトの属性は維持された状態となります。

ごみ箱の機能が無効(既定の動作)の前のオブジェクトのライフライクルは以下の通りです。

Active Directory ごみ箱の機能が有効になっていない場合、AD オブジェクトが削除されても、全ての属性が維持された状態で、isDeleted 属性の値が True となって隠しコンテナに移動されます。この状態を「削除済み状態」と呼びます。削除済み状態のオブジェクトは、[Active Directory 管理センター] にある “Active Directory ごみ箱” 機能を利用して、簡単に完全に元の状態に復元することができます。「削除済み状態」は既定で 180 日間有効です。

AD オブジェクトを削除して「削除済み状態」となって 180 日経過すると、「リサイクル済み状態」に変わり、AD オブジェクトのほとんどの属性が消去されます。リサイクル済みのオブジェクトを復元したい場合、isDeleted 属性を削除して、オブジェクト自体を復元することはできますが、属性値の設定が消去された状態です。「リサイクル済み状態」は既定で 180 日間有効です。「リサイクル済み状態」となって 180 日経過すると、180 日を経過したら次のガーベッジコレクションのタイミングにて 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) 以下のコマンドを実行して、以下のコマンドレットを実行します。

Enable-ADOptionalFeature ‘Recycle Bin Feature’ -Scope ForestorConfigurationSet -Target <ドメイン名>
4) 警告が表示されますので、[Y] を押下し、Enter キーを押下します。
 

削除済みオブジェクトの復元手順

Active Directory ごみ箱を有効化にしているドメイン環境では、簡易的に削除済み状態の AD オブジェクトを復元できます。削除済み状態の AD オブジェクトの復元は [Active Directory 管理センター] の管理ツールより行えますが、Windows Server 2008 R2 の OS のドメイン コントローラーの場合には 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 を検索します。

Get-ADObject -LDAPFilter “(name=testuser01*)” -SearchBase “cn=Deleted Objects,DC=nekomaru,DC=com” -IncludeDeletedObjects

赤マーカーの部分は、環境におじて変更してください。-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>

実行結果例:

PS C:\> Restore-ADObject “CN=testuser01\0ADEL:038ec182-f95b-45a3-b87b-62cbe09b5b2b,CN=Deleted Objects,DC=nekomaru,DC=com”