【Windows Sysinternalsを使い倒せ】AdRestoreを使うときの注意点

筆者がComputerworld.jpで連載している企画、「Windows Sysinternalsを使い倒せ」シリーズの第4回が公開されました。

■AdRestoreを使い倒せ!
http://www.computerworld.jp/topics/mws/191221.html
(バナーも作ってもらいました)

知ってる人には大人気のSysinternalsのツール群にも、Active Directoryにフォーカスしたツールがあり、
第4回からはActive Directory関連ツール群を紹介しています。

第4回で取り上げるAdRestoreは、Active Directoryから削除したユーザーなどのオブジェクトを復元するツールで、
Active Directoryのバージョンを問わず使えるというメリットがあります。
(Windows Server 2008 R2以降にはごみ箱機能がありますが、Windows Server 2003などでは使えないですね)
詳しくは記事を見てもらえればと思いますが、
Active Directoryからユーザーなどを復元するときには、ちょっとしたテクニックで様々な属性も復元できます。
ただし、この記事で紹介しているテクニックでは復元できない属性があります。
それは、「後方リンク」となっている属性です。
(前方リンク、後方リンクについてはこちらを参照)

■ ■ ■

ここから先は少しディープな話になるので、結論さえ知ればよいという人は、この先は読み飛ばしてください。

後方リンクが復元されない理由は2つあります。

1.後方リンクは復元可能な属性として設定できない
2.後方リンクの復元によって前方リンクが自動的に復元されることはない

ここでは2.について、もう少し掘り下げてみてみましょう。
ユーザーの[所属するグループ]という属性(memberOf属性)が後方リンクですので、これを例に挙げます。

20110412-1

上図のようにグループのメンバーにユーザーが含まれている場合、
ユーザーを削除すると、ユーザーだけでなく、後方リンクに関連付けられている前方リンク
(この場合はグループのmember属性)も同時に削除されます(下図)。

20110412-2

そこで、AdRestoreを使ってユーザーを復元すると、ユーザーそのものは復元されますが、
グループのメンバーシップ情報は復元されません(下図)。

20110412-3

なぜでしょうか?
理由は2つあります。ひとつは前述のとおり、後方リンクは復元できないから。
もうひとつは、後方リンクは前方リンクに基づいて設定される属性だからです。
前の投稿でも書きましたが、
前方リンクの内容をコピーして後方リンクが構成されるのであって、
後方リンクの内容が前方リンクにコピーされることはありません。

そのため、仮にAdRestoreでユーザーの後方リンク属性が復元されたところで、
グループの前方リンクが復元されたわけではないため、グループのメンバーシップ情報は復元されないのです。

以上の理由から、AdRestoreではグループのメンバーシップ情報の復元はできないのです。
(グループとユーザーを同時に復元すればよい、という考えもあるでしょうが、それは現実的ではないですね)