none
AD環境下で氏名を自動登録する方法 RRS feed

  • 質問

  • お世話になります。個人識別子(=ADのログオンID,ユーザー名)とパスワードが登録されているAD環境があります。ここで、個人識別子(=ADログオンID,ユーザー名)と氏名のみのデータ(Excelファイル)から、ログオンIDに対応する「氏名」をAD環境に手動登録するという作業をしなければなりません。

    手動ではなく、自動で登録するようなアイデアはございませんでしょうか?

    AD環境にログオンIDとパスワードを登録しているのは情報部門らしいのですが、どのような仕組みで登録しているのかは分かりません。

    私が依頼されているのは管理部門から渡された、個人識別子(=ADログオンID)と氏名のExcelデータのみです。このデータから、既にADに登録されているユーザの「氏名」を手動登録するという内容です。情報部門としてはIDとパスワードがあればパソコンを使えるので問題なしという判断。一方、それを使う管理部門ではIDだけではどこの誰だかわからないから氏名を登録せよ、という事のようです。

    依頼内容は単純な作業ですので難しい話はないのですが。ただ、この度の大震災の被災地故、電源が復旧していないとか建物の安全確認中で立ち入りができないとかで、本来は3月中旬に行う予定だった作業が、来週からの予定通りの使用開始に合わせるために時間がなくなってしまいました。

    手動登録しなければいけない新規ユーザは2500人位いるそうです。加えて人間が手動で行えばミスはつきもの。

    以下、専門知識のない素人の思いつきで恐縮ですが、なんとか自動実行する方法はないでしょうか?

    勤め先のIT部門に聞いたところでは、新規にユーザ登録する場合、ログオンID、パスワード、氏名のExcelデータからCSVファイルを作成し、for /F でCSVファイルを開き(専門知識がないので間違っているかもしれません)、dsadd コマンドで夫々を登録しているとの事。

    であれば、既に登録されているIDに関して氏名を登録する事ができるのではないかと、素人ながら思いましたので質問させていただきました。

    知識がないなりにヘルプで調べようとしたのですが、クライアントPCではdsaddやdsmod(ユーザを加えるのがaddだったら、モデファイするのはdsmodかな?と言った思いつきに過ぎません)がインストールされないようで、なかなか判断がつきません。

    何かよいアイデアをお持ちの方がいらっしゃいましたら、ご教示・ご示唆いただけますと助かります。

    2011年4月8日 13:40

回答

  • チャブーンです。

    来週(4/11)には終わってないといけないことなんでしょうか?役には立たないでしょうが、ひとまず答えます。

    答えだけいうと、可能でしょう。次の方法をとれば。

    • クライアントに「RSAT」という管理ツールをインストールし、セットアップします。(これでdsコマンドが使えます)
      http://www.atmarkit.co.jp/fwin2k/win2ktips/1031rsat/rsat.html
    • For /F "tokens=1,2 delims=," %i in (file.csv) do "dsquery user -name %i|dsmod user -display %j" というコマンドを実行します

    ただし、上の条件には、各行に 「(Active Directoryの)ユーザー名,(新規に登録する)氏名」が書かれたfile.csvというCSVファイルを用意してもらう必要があります。このファイルも自動生成したい、というならマクロを使うことになるとおもいますので、また別問題になります。

    追記:For /Fコマンドに微妙に誤りがあり、訂正しました。tokens=で要素を指定しないといけないです。
    2011年4月10日 20:20
    モデレータ

すべての返信

  • チャブーンです。

    来週(4/11)には終わってないといけないことなんでしょうか?役には立たないでしょうが、ひとまず答えます。

    答えだけいうと、可能でしょう。次の方法をとれば。

    • クライアントに「RSAT」という管理ツールをインストールし、セットアップします。(これでdsコマンドが使えます)
      http://www.atmarkit.co.jp/fwin2k/win2ktips/1031rsat/rsat.html
    • For /F "tokens=1,2 delims=," %i in (file.csv) do "dsquery user -name %i|dsmod user -display %j" というコマンドを実行します

    ただし、上の条件には、各行に 「(Active Directoryの)ユーザー名,(新規に登録する)氏名」が書かれたfile.csvというCSVファイルを用意してもらう必要があります。このファイルも自動生成したい、というならマクロを使うことになるとおもいますので、また別問題になります。

    追記:For /Fコマンドに微妙に誤りがあり、訂正しました。tokens=で要素を指定しないといけないです。
    2011年4月10日 20:20
    モデレータ
  • こんにちは、フォーラムオペレーターの三沢健二です。

    CSV や Excel ファイルを元にデータ登録、もしくはデータを抽出する場合には、Excel VBA で簡単なプログラムを作成する方法も考えられます。
    (最初に関数を色々作っておくと便利です。LDAP の基本的な概念が必須です)


    - 参考情報
    Active Directoryのユーザ管理 (1)
    http://www.sunvisor.net/win/ad_user_mng1

    Active Directoryのユーザ管理 (2)
    http://www.sunvisor.net/win/ad_user_mng2

    スクリプト センター Active Directory
    http://technet.microsoft.com/ja-jp/scriptcenter/ff628223
    (若干の修正が必要になりますが、スクリプトを VBA に移植する事も可能です)


    それでは、こちらの情報が少しでもお役にたてれば幸いです。

    ______________________________________
    日本マイクロソフト株式会社 フォーラム オペレーター 三沢健二

    2011年4月11日 7:43
    モデレータ
  • ご回答ありがとうございました。現地のPDCやBDCにはdsXXXコマンドがあり、dsmod /? を読みながらなんとかバッチファイルを作り、今無事に帰社できました。また、新規追加ユーザの使用開始は4/13からでしたのでなんとか間に合いました。(先程立て続けに大規模な余震が発生しましたので、更に延びるかもしれませんが・・)

    dsquery の結果をdsmod にパイプで渡すなんて思いつきもしませんでした。(ですので最初に dsqueryして、その部分をバッチファイルに直接埋め込んでいました。)。次年度の参考にさせていただきます。m(_ _)m

    2011年4月11日 9:37