UnixPower on Networking
  http://www.unix-power.net/

 
  Top - WindowsServer - ActiveDirectory DSコマンド




ActiveDirectoryを管理するツールでdsコマンドが用意されています。大量のユーザを一括登録する際などに重宝します。ここではそのコマンドを紹介します。


dsadd userオプション


項目 説明 
<ユーザーDN> 必要な値です。追加するユーザーのDN(識別名)です。
-samid <SAM名> ユーザーのSAMアカウント名を <SAM名> に設定します。SAMアカウント名を指定しない場合は、dsaddにより、<ユーザーDN> のCN(共通名)の値の最初の20文字を使用してSAMアカウント名が作成されます。
-upn <UPN> upn値を <UPN> に設定します。
-fn <名> ユーザーの名を <名> に設定します。
-fnp <名フリガナ> ユーザーのフリガナ(名)を <名フリガナ> に設定します。
-mi <イニシャル> ユーザーのミドル ネームを <イニシャル> に設定します。
-ln <姓> ユーザーの姓を <姓> に設定します。
-lnp <姓フリガナ> ユーザーのフリガナ(姓)を <姓フリガナ> に設定します。
-display <表示名> ユーザーの表示名を <表示名> に設定します。
-displayp <表示名フリガナ> ユーザーのフリガナ(表示名)を <表示名フリガナ> に設定します。
-empid <社員ID> ユーザーの社員ID を <社員ID> に設定します。
-pwd {<パスワード> | *} ユーザーのパスワードを <パスワード> に設定します。*の場合は、パスワードの入力が求められます。
-desc <説明> ユーザーの説明を <説明> に設定します。
-memberof <グループ …> ユーザーを1つまたは複数のグループ <グループ …> のメンバーに設定します。
-office <勤務先> ユーザーの勤務先所在地を <勤務先> に設定します。
-tel <電話番号> ユーザーの電話番号を <電話番号> に設定します。
-email <電子メール> ユーザーの電子メール アドレスを <電子メール> に設定します。
-hometel <自宅電話番号> ユーザーの自宅電話番号を <自宅電話番号> に設定します。
-pager <ポケットベル番号> ユーザーのポケットベル番号を <ポケットベル番号> に設定します。
-mobile <携帯電話番号> ユーザーの携帯電話番号を <携帯電話番号> に設定します。
-fax <FAX番号> ユーザーのFAX番号を <FAX番号> に設定します。
-iptel <IP電話番号> ユーザーのIP電話番号を <IP電話番号> に設定します。
-webpg <Webページ> ユーザーのWebページのURLを <Webページ> に設定します。
-title <役職> ユーザーの役職を <役職> に設定します。
-dept <部署> ユーザーの部署を <部署> に設定します。
-company <会社> ユーザーの会社情報を <会社> に設定します。
-mgr <上司> ユーザーの上司を <上司> に設定します(形式はDN)。
-hmdir <ホーム ディレクトリ> ユーザーのホーム ディレクトリを <ホーム ディレクトリ> に設定します。UNCパスの場合は、このパスに割り当てられるドライブ文字を -hmdrvで指定する必要もあります。
-profile <プロファイル パス> ユーザーのプロファイル パスを <プロファイル パス> に設定します。
-loscr <スクリプト パス> ユーザーのログオン スクリプト パスを <スクリプト パス> に設定します。
-mustchpwd {yes | no} ユーザーが次回ログオン時にパスワードを変更する必要があるかどうかを指定します。
既定値: no
-canchpwd {yes | no} ユーザーがパスワードを変更できるかどうかを指定します。-mustchpwdが “yes” の場合は、”yes” です。
既定値: yes
-reversiblepwd {yes | no} 暗号化を元に戻せる状態でユーザーのパスワードを保存できるかどうかを指定します。
既定値: no
-pwdneverexpires {yes | no} ユーザーのパスワードの有効期限が切れないようにするかどうかを指定します。
既定値: no
-acctexpires <日数> ユーザー アカウントの有効期限が、今日から <日数> 日後に切れるように設定します。0の値はアカウントの有効期限が今日の終わりに切れることを示します。正の値は有効期限が将来切れることを示します。負の値は有効期限が既に切れていて、過去に有効期限を設定することを示します。文字列の値 “never” は、アカウントの有効期限が切れないことを示します。
-disabled {yes | no} ユーザー アカウントが無効かどうかを指定します。
既定値: no
{-s <サーバー> | -d <ドメイン>} -s <サーバー> は名前 <サーバー> で AD DC/LDSインスタンスに接続します。
-d <ドメイン> はドメイン <ドメイン> のAD DCに接続します。
既定値: ログオン ドメインのAD DC
-u <ユーザー名> <ユーザー名> として接続します。
既定値: ログオンしているユーザー
ユーザー名は “ユーザー名”、”ドメイン\ユーザー名”、またはユーザー プリンシパル名(UPN)で指定します。
-p {<パスワード> | *} ユーザー<ユーザー名> のパスワードです。*を指定した場合は、パスワードの入力が求められます。
-q Quietモード: 標準出力への出力をすべて抑制します。
{-uc | -uco | -uci} -ucパイプからの入力またはパイプへの出力がUnicode形式であることを指定します。
-ucoパイプまたはファイルへの出力がUnicode形式であることを指定します。
-uciパイプまたはファイルからの入力がUnicode形式であることを指定します。


■操作例


実際このコマンドを使って一行一行書いていくのはかなり大変なので、あらかじめCSVファイルなどを用意しておいてスクリプトで一括処理させて登録するのが簡単でしょう。参考に以下のようなCSVファイルがあるという前提でスクリプトを組んで見ました。


・CSV


SAM,UPN,名,姓,表示名,パスワード,グループ,電子メール

・スクリプト


#!/usr/bin/perl

open(FILE, './user_list.txt');
@txt = <FILE>;
close(FILE);

$ou       = "ou=Users,ou=Linux,dc=ad-domain,dc=local";
$group_ou = "ou=Group,dc=ad-domain,dc=local";

$count = 0;
for my $i (@txt){
    if($count!=0){
        ($sam, $upn, $sei, $mei, $display, $pass, $group, $email) = split(/,/, $i);
        system("dsadd user \"cn=$sam,$ou\" -samid $sam -upn $upn -fn $mei \
        -ln $sei -display $display -pwd $pass -memberof \"cn=$group,$group_ou\" \
        -email $email -pwdneverexpires yes");
    }
    $count++;
}



 
 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.