今週は、Active Directoryにおけるオブジェクトの削除について解説する。
エクスプローラでファイルを削除する場合と異なり、Active Directoryのオブジェクト削除にはゴミ箱機能がないので、削除は注意深く行う必要がある。そのため、いきなり削除するのではなく、無効化できるものであれば、とりあえず無効化して様子を見る方が無難だ。
なお、こうした事情から、削除前に表示する確認メッセージでは既定値が[いいえ]になっており、うっかり[はい]をクリックして削除してしまう事故を防いでいる。
また、OUの場合には特に注意が必要となる。OUを削除すると、そのOU内のオブジェクトもすべて道連れになって削除するからだ。また、ユーザーアカウントやコンピュータアカウントと違って、OUは無効化もできない。そのため、OUを削除する際には、特に慎重に行う必要がある。
なお、オブジェクトのうち共有フォルダと共有プリンタは、オブジェクトを削除しても登録解除になるだけで、共有そのものは解除しない。
管理ツールを使用する方法
まず、[Active Directoryユーザーとコンピュータ]管理ツールを使用する方法から解説しよう。操作手順は以下の通りだ。
[Active Directoryユーザーとコンピュータ]管理ツールを起動する。
左側のツリー画面で、削除したいオブジェクトがある場所(ドメイン、OUまたはコンテナ)を選択する。
右側の一覧で削除したいオブジェクトを選択して、[操作]-[削除]、あるいは右クリックして[削除]を選択する。削除する対象がOUの場合、左側のツリー画面で選択してもよい。
OUの削除に関する注意(2008限定)
Windows Server 2008のActive Directoryでは、OUの「うっかり削除」を防ぐために、作成はできても削除はできない設定が既定値になっている。この設定を解除してOUを削除するには、以下の操作を行う。
[Active Directoryユーザーとコンピュータ]管理ツールを起動する。
[表示]メニューの[拡張機能]を選択する。
左側のツリー画面で目的のOUを選択して、[操作]-[プロパティ]、あるいは右クリックして[プロパティ]を選択する。
[オブジェクト]タブに移動して、[誤って削除されないようにオブジェクトを保護する]チェックボックスをオフに変更する。
Windows Server 2008では、「うっかり削除」を防ぐために、既定値では保護機能が有効になっている(作成時に選択可能)。[Active Directoryユーザーとコンピュータ]管理ツールの[表示]メニューで[拡張機能]を選択すると、プロパティ画面に[オブジェクト]タブが現れるが、そこで保護機能の有効・無効を変更できる |
- [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