Directoryのアカウント情報をエクスポートしたい場合がある。csvdeコマンドを利用すると、CSV形式でエクスポートできる。アカウントの名称や種類による絞り込みも可能だ。Directory(AD)には、ドメイン・ユーザーのアカウント名やID、所属グループといった情報が格納されている。それらの情報をエクスポートして加工し、別の用途に使いたいことがある。ユーザー・アカウントの台帳をExcelで管理する場合や、ADと連携していないサーバ・ソフトウェアでADのアカウントと同じ名称のアカウントを登録したい場合などが挙げられる。ADのアカウント情報をエクスポートするには、マイクロソフト提供のcsvdeコマンドやldifdeコマンドが手軽で便利だ。前者はCSV形式で、後者はLDIF形式(1行ずつ属性名とその値が記録される形式)で出力される。VBScriptやPowerShellなどのスクリプトでもエクスポートできるが、少なからずプログラムを組む必要があり、手間がかかる。複雑な加工を自動化する場合を除けば、csvdeコマンドやldifdeでも十分役に立つ。本稿ではcsvdeコマンドでADのアカウント情報をエクスポートする手順と注意点を説明する。Directoryのアカウント情報をエクスポートする(ldifdeコマンド編)」を参照していただきたい。●csvdeコマンドの入手・インストールcsvdeコマンドを利用するには、ADを制御するためのツールをインストールする必要がある。Mode)をインストールすると、%SystemRoot%\ADAMフォルダにcsvde.exeがインストールされる。ダウンロード・センター)検索パスには登録されないので、「%SystemRoot%\ADAM\csvde.exe」というようにフル・パスで指定して実行する。Tools(RSAT)をインストールする。サーバー管理ツール]−[役割管理ツール]までツリーを開き、次のいずれかの役割管理ツールを有効化する。Vistaの場合と同様にRSATをインストールする。ツール]までツリーを開き、次のいずれかの役割管理ツールを有効化する。セットアップすることなく、csvdeコマンドを実行できる(%SystemRoot%\system32フォルダにcsvde.exeが存在するはずだ)。サーバー管理ツール]−[役割管理ツール]までツリーを開き、次のいずれかの役割管理ツールを有効化する。ツール]までツリーを開き、次のいずれかの役割管理ツールを有効化する。ツール]●csvdeコマンドの基本的な使い方csvdeコマンドの使い方は、コマンド・プロンプト上でオプションを指定せずに「csvde」を実行すると表示される。csvdeコマンドはデフォルトではエクスポート・モードで動作するので、エクスポート先のファイル名指定などのオプションを付けて実行すればよい。Adminsグループ所属のユーザーなど)でログオンする(別ドメインやワークグループから実行する方法については後述する)。<エクスポート・ファイル>」というオプションを指定する。デフォルトでは、日本語を含む属性が「X'02000......」というようにエンコードされて扱いにくい。そこで-uオプションを指定すると、文字コードをUnicodeにして日本語をそのまま出力できる。エクスポートしていますエントリを検索しています...エントリを書き出しています.................................................................(省略)................................................エクスポートが完了しました。個のエントリがエクスポートされましたコマンドが正しく完了しました上記のようにcsvdeコマンドを実行すると、所属しているADの全オブジェクトの情報がexport.csvにエクスポートされる。その1行目は列の項目を表すヘッダー行で、2行目から各アカウントの情報が記載されているはずだ。太郎,"CN=maanger01,CN=Users,DC=example,DC=jp",4,......"CN=test03,CN=Users,DC=example,DC=jp",user,テスト用アカウント,"CN=test03,CN=Users,DC=example,DC=jp",4,..................(省略)......●ユーザー・アカウントのみエクスポートするデフォルトでは、csvdeコマンドはADの全オブジェクトの情報をエクスポートするため、例えば組織単位(OU)やシステム関連のオブジェクトなど、アカウント以外の不要な情報も記録されてしまう。必要な情報だけを抜き出すには、そのためのオプションをcsvdeに指定する必要がある。ユーザー・アカウントのみエクスポートするには、次のように-rオプションを指定する。objectCategory=userグループ・アカウントをエクスポートするには、上記の「user」の代わりに「group」を指定すればよい。特定の名前を持つユーザー・アカウントのみエクスポートしたい場合は、検索条件をLDAPの形式で指定する。名字(性)の頭文字が「s」から始まるユーザー・アカウントのみエクスポートするには、次のように-rオプションと検索文字列を指定する。"(&(objectCategory=user)(sn=s*))"「sn」は名字を格納している属性名である。●特定のOUやコンテナに所属するアカウントのみエクスポートするあるOUやコンテナに含まれるアカウントのみエクスポートするには、-dオプションを利用する。"cn=Users,dc=example,dc=jp"」というようにコンテナの場所を指定する。"cn=Users,dc=example,dc=jp"また、「sales」というOUに限定する場合は、次のように-dオプションを指定する。"ou=sales,dc=example,dc=jp"デフォルトでは、指定したOUやコンテナに含まれるサブ・コンテナ以下、すなわちサブ・ツリー全体がエクスポートされる。サブ・コンテナは含めず、指定したOU/コンテナ内に含まれるオブジェクトだけに限定するには、次のように-pオプションを指定する。OneLevel●属性を絞り込んでエクスポートするcsvdeはデフォルトで、エクスポート対象のオブジェクトが持つ全属性をエクスポートしようとする。アカウント台帳を作成する場合など、用途によって必要な属性は限られている。そこで属性を絞り込むオプションを指定する。バイナリ値の属性を省略するには-nオプションを指定すると、GUIDやSIDといったバイナリ値がエクスポート・データから省かれる。-nあらかじめ必要な属性が判明している場合は、次のように-lオプションで各属性をカンマで区切って指定すると、それらの属性だけがエクスポートされる。cn,description,distinguishedName,displayName,sAMAccountName逆に特定の属性を省きたいなら、それを-oオプションで指定する。以下では、ADに保存されたユーザーの証明書だけ省いてエクスポートするように指定している。userCertificate●所属外ドメインやワークグループからcsvdeを実行するログオン中とは別のADに所属しているPCや、ワークグループ構成のPCから、ADの情報をエクスポートしたい場合は、対象のドメインから情報を取得できる資格情報を指定する必要がある。具体的には、次のように-bオプションや-sオプションを指定する。<ドメイン・コントローラ名>例えば、example.comドメインのadmin02アカウントを用いて、dc02.example.comというドメイン・コントローラからエクスポートするには、次のようにcsvdeコマンドを実行する。<パスワード>に「*」を指定すると、入力を促すプロンプトが表示されるので、指定した<ユーザー名>のパスワードを入力する。エクスポートしていますエントリを検索しています...エントリを書き出しています.....................................................................................エクスポートが完了しました。個のエントリがエクスポートされましたコマンドが正しく完了しました●csvdeコマンドでエクスポートしたデータをExcelに読み込ませる際の注意csvdeコマンドに-uオプションを指定して、文字コードをUnicodeにしてエクスポートした場合、そのCSVファイルを単にダブルクリックしてExcelに読み込ませると、カンマが区切り文字として認識されず、日本語も文字化けしてしまう。ファイル]を選択してから、エクスポートしたCSVファイルを開く。するとテキスト・ファイル・ウィザードが始まるので、区切り文字にカンマを指定してウィザードを完了させる。JIS)」と自動判定されるが、そのままでも文字化けせずに正しく読み込める。csvdeコマンドの詳細については、次のマイクロソフトのリファレンス・ページを参照していただきたい。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。