今週は、Active Directoryにおけるオブジェクトの削除について解説する。

エクスプローラでファイルを削除する場合と異なり、Active Directoryのオブジェクト削除にはゴミ箱機能がないので、削除は注意深く行う必要がある。そのため、いきなり削除するのではなく、無効化できるものであれば、とりあえず無効化して様子を見る方が無難だ。

なお、こうした事情から、削除前に表示する確認メッセージでは既定値が[いいえ]になっており、うっかり[はい]をクリックして削除してしまう事故を防いでいる。

また、OUの場合には特に注意が必要となる。OUを削除すると、そのOU内のオブジェクトもすべて道連れになって削除するからだ。また、ユーザーアカウントやコンピュータアカウントと違って、OUは無効化もできない。そのため、OUを削除する際には、特に慎重に行う必要がある。

なお、オブジェクトのうち共有フォルダと共有プリンタは、オブジェクトを削除しても登録解除になるだけで、共有そのものは解除しない。

管理ツールを使用する方法

まず、[Active Directoryユーザーとコンピュータ]管理ツールを使用する方法から解説しよう。操作手順は以下の通りだ。

  1. [Active Directoryユーザーとコンピュータ]管理ツールを起動する。

  2. 左側のツリー画面で、削除したいオブジェクトがある場所(ドメイン、OUまたはコンテナ)を選択する。

  3. 右側の一覧で削除したいオブジェクトを選択して、[操作]-[削除]、あるいは右クリックして[削除]を選択する。削除する対象がOUの場合、左側のツリー画面で選択してもよい。

[削除]を選択すると、そのオブジェクトを削除する。手順はオブジェクトの種類に関係なく同じだが、OUについては配下のオブジェクトもまとめて削除する点に注意

OUの削除に関する注意(2008限定)

Windows Server 2008のActive Directoryでは、OUの「うっかり削除」を防ぐために、作成はできても削除はできない設定が既定値になっている。この設定を解除してOUを削除するには、以下の操作を行う。

  1. [Active Directoryユーザーとコンピュータ]管理ツールを起動する。

  2. [表示]メニューの[拡張機能]を選択する。

  3. 左側のツリー画面で目的のOUを選択して、[操作]-[プロパティ]、あるいは右クリックして[プロパティ]を選択する。

  4. [オブジェクト]タブに移動して、[誤って削除されないようにオブジェクトを保護する]チェックボックスをオフに変更する。

Windows Server 2008では、「うっかり削除」を防ぐために、既定値では保護機能が有効になっている(作成時に選択可能)。[Active Directoryユーザーとコンピュータ]管理ツールの[表示]メニューで[拡張機能]を選択すると、プロパティ画面に[オブジェクト]タブが現れるが、そこで保護機能の有効・無効を変更できる

  1. [OK]をクリックしてダイアログを閉じる。

この操作により、OUの削除が可能になる。

なお、「2.」の操作により、グループのプロパティ画面にも同様の[オブジェクト]タブが出現する。ただしこちらは、既定値では[誤って削除されないようにオブジェクトを保護する]チェックボックスはオフになっている。これをオンにすることで、グループの「うっかり削除」を防止することもできる。特に重要性が高いグループについて、この設定を行うのも一案だ。

NETコマンドを使用する方法

オブジェクトの削除には、NETコマンドも使用できる。削除に際しての注意点は、[Active Directoryユーザーとコンピュータ]管理ツールを使用する場合と同様だ。

NETコマンドの場合、削除する対象によってコマンドが異なるが、いずれも引数「/delete」を使用する点は同じだ。対象ごとのコマンドの違いは以下のようになる。

ユーザーアカウント NET USER
コンピュータアカウント NET COMPUTER
ドメイングローバルグループ NET GROUP
ドメインローカルグループ NET LOCALGROUP

以下に、これらのコマンドの実行例を示す。

ユーザー「kojii」を削除

net user kojii /delete

ドメイングローバルグループ「Sales_RW」を削除

net group Sales_RW /delete

ドメインローカルグループ「Sales_RO」を削除

net localgroup Sales_RO /delete

コンピュータ「HERMES」のアカウントを削除

net computer \\HERMES /delete

dsrmコマンドを使用する方法(OU以外)

オブジェクトの種類に関係なく、削除にはdsrmコマンドを使用する。削除対象となるオブジェクトのLDAP識別名を指定するようになっており、オブジェクトの種類による違いはない。ただしOUについては、削除対象を指定する引数が加わっているため、後述する。

以下に、dsrmコマンドの実行例を示す。

ドメイン「ad-domain.company.local」内のOU「Sales」にあるユーザー「kojii」を削除

dsrm cn=kojii,ou=Sales,dc=ad-domain,dc=company,dc=local

ドメイン「ad-domain.company.local」内のコンテナ「Users」にある連絡先「webmaster」を削除

dsrm cn=webmaster,cn=Users,dc=ad-domain,dc=company,dc=local

ドメイン「ad-domain.company.local」内のコンテナ「Computers」にある、コンピュータ「helios」のアカウントを削除

dsrm cn=helios,cn=Computers,dc=ad-domain,dc=company,dc=local

ドメイン「ad-domain.company.local」内のOU「Tokyo」にある、グループ「Tokyo_Admin」を削除

dsrm cn=Tokyo_Admin,ou=Tokyo,dc=ad-domain,dc=company,dc=local

dsrmコマンドを使用する方法(OUの場合)

dsrmコマンドによるOUの削除には、OU固有の注意事項がある。それは、他のオブジェクトと違ってOUは階層化が可能である、という点だ。

OUの削除に際しては引数の指定により、「OUだけを削除」「OUのツリー全体を削除」「ツリーの中身を削除しつつ、削除対象になったツリー最上階層のOUだけは空白の状態で残す」といった指定が可能になっている。

OU「Tokyo」以下にあるOU「Sales」を、ドメイン「ad-domain.company.local」から削除

dsrm ou=Sales,ou=Tokyo,dc=ad-domain,dc=company,dc=local

ドメイン「ad-domain.company.local」から、OU「Tokyo」以下のツリーとオブジェクトを削除する(OU「Tokyo」も消滅)

dsrm -subtree -noprompt -c ou=Tokyo,dc=ad-domain,dc=company,dc=local

ドメイン「ad-domain.company.local」から、OU「Tokyo」以下のツリーとオブジェクトを削除する(OU「Tokyo」は残す)

dsrm -subtree -exclude -noprompt -c ou=Tokyo,dc=ad-domain,dc=company,dc=local