過去3回に渡り、本連載ではユーザーアカウント、連絡先、OU、コンピュータアカウント、グループといったオブジェクトのプロパティ変更について解説してきた。[Active Directoryユーザーとコンピュータ]管理ツールであれば、プロパティを表示、確認するだけでも同様の手順を利用できる。

このプロパティの表示、確認についても、Windows Server 2003以降のActive Directoryであれば、コマンド操作を行う方法が用意されている。そこで使用するのがdsgetコマンドだ。コマンド名は、対象がユーザーアカウントならdsget user、グループならdsget group、OUならdsget ou、コンピュータアカウントならdsget computerといった具合になる。

dsgetコマンドの基本

dsgetコマンドを使用すると、Active Directoryのオブジェクトに設定してある各種のプロパティを、コマンドプロンプトの画面に表示させることができる。

まず、引数としてオブジェクトのLDAP識別名だけを指定すると、そのオブジェクトが持つすべてのプロパティを表示する。

ドメイン「ad-domain.company.local」にあるOU「Sales」のプロパティを表示させる

dsget ou ou=Sales,dc=ad-domain,dc=company,dc=local

このコマンドの実行結果は、以下のようになる。1行目の「dn」と「desc」がそれぞれ、プロパティ項目名を意味している。

dn                                           desc
  ou=Sales,dc=ad-domain,dc=company,dc=local
dsget 成功

また、表示するプロパティ項目を限定するために、表示させたいプロパティ項目を指定する引数を記述する方法もある。このとき使用する引数の名称は、dsaddオブジェクトを追加する際に使用するものと同じだ(ただしdsaddコマンドと違って、引数に続けて値を指定する必要はない)。ユーザーアカウントと連絡先については、本連載の第37回で引数の一覧をまとめてあるので参照されたい。

以下に、さまざまなオブジェクトを対象としたdsgetコマンドの実行例を示す。

ドメイン「ad-domain.company.local」内のコンテナ「Users」にある、ユーザーアカウント「kojii」の情報をすべて表示

dsget user cn=kojii,cn=Users,dc=ad-domain,dc=company,dc=local

ドメイン「ad-domain.company.local」内のOU「Tokyo」にあるユーザーアカウント「keikoo」の、NetBIOS名、表示名、電話番号、携帯電話番号、WebページURLを表示

dsget user cn=kojii,ou=Tokyo,dc=ad-domain,dc=company,dc=local -samid -display -hometel -mobile -webpg

ドメイン「ad-domain.company.local」内のコンテナ「Computers」にある、コンピュータ「artemis」の情報をすべて表示

dsget computer cn=artemis,cn=Computers,dc=ad-domain,dc=company,dc=local

ドメイン「ad-domain.company.local」内のOU「Domain Controllers」にある、コンピュータ「styx」の情報をすべて表示

dsget computer "cn=styx,ou=Domain Controllers,dc=ad-domain,dc=company,dc=local"

ドメイン「ad-domain.company.local」内のコンテナ「Computers」にある、コンピュータ「helios」の説明を表示

dsget computer cn=helios,cn=Computers,dc=ad-domain,dc=company,dc=local -desc

ドメイン「ad-domain.company.local」内のコンテナ「Users」にある、グループ「Domain Admins」のメンバを表示

dsget group "cn=Domain Admins,cn=Users,dc=ad-domain,dc=company,dc=local -members

ドメイン「ad-domain.company.local」にあるOU「Tokyo」の説明を表示

dsget ou ou=Tokyo,dc=ad-domain,dc=company,dc=local -desc

リダイレクトやパイプの活用

dsgetコマンドの実行結果は標準出力に出力するため、リダイレクトによってファイルに書き出したり、パイプによって他のコマンドの入力に渡したりすることもできる。

ドメイン「ad-domain.company.local」以下のコンテナ「Users」にあるユーザーアカウント「kojii」のプロパティすべてを、カレントフォルダのテキストファイル「kojii.txt」に書き出す

dsget user cn=Users,dc=ad-domain,dc=company,dc=local > kojii.txt

ドメイン「ad-domain.company.local」にあるOU「Tokyo」の説明を、カレントフォルダのテキストファイル「Tokyo.txt」に書き出す

dsget ou ou=Tokyo,dc=ad-domain,dc=company,dc=local -desc > Tokyo.txt