- PR -

ActiveDirectoryユーザーの一括設定変更について

投稿者投稿内容
Sunvisor
常連さん
会議室デビュー日: 2004/08/24
投稿数: 20
投稿日時: 2004-11-26 16:33
ADSIとVB(VBScriptでもVBAでも)を利用すれば、可能です。

ユーザーオブジェクトのuserAccountControlにフラグをセットします。
user.Put "userAccountControl", flag
というような感じです。
フラグの定数については調べないとわからないんですが、
ある一人のユーザーにサーバー上で、変更後にこうしたいというフラグを
セットして、ADSIでそのユーザーの情報を読み出し、値を参照すれば
わかるでしょう。

ADSIは他にもいろんなことが出来るので、覚えておくと便利です。

参考
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdnadsi/htm/ADSI.asp

http://bbs.memopad.jp/view/?scid=1344;all
らくだ
会議室デビュー日: 2004/10/19
投稿数: 14
投稿日時: 2004-11-29 00:03
ありがとうございます。
そんな方法もあるのですね…。勉強になりました。
Sunvisor
常連さん
会議室デビュー日: 2004/08/24
投稿数: 20
投稿日時: 2004-12-02 15:22
らくださん、すいません。
前の書き込みで少しウソを書いてしまいました。m(_ _)m

ADSIを使うのはそうなのですが、「ユーザーは次回ログオン時にパスワード変更が必要」にチェックを入れるには、userAccountControlではなく、PwdLastSetプロパティでした。

Set oUser = GetObject("LDAP://CN=ueda,OU=Persons,DC=domain,DC=example")
oUser.pwdLastSet = 0
oUser.SetInfo

というような書き方でチェックが入ります。ただし、「パスワードを無期限にする」のチェックが入っている場合は、うまくいきませんので、その場合はpwdLastSetの前に
oUser.Put "userAccountControl", UAC_NORMAL_ACCOUNT
などと入れる必要があります。

なお、userAccountControlフラグの定数を見つけました。

http://support.microsoft.com/default.aspx?scid=kb;ja;305144

スキルアップ/キャリアアップ(JOB@IT)