- PR -

ADでのログオンユーザー名変更方法

1
投稿者投稿内容
める
会議室デビュー日: 2008/01/30
投稿数: 8
投稿日時: 2008-02-07 21:51
ActiveDirestoryで、既に登録しているログオンユーザー名(約600アカウント)の一括変更方法を教えていただけないでしょうか。アルファベットフルユーザー名から社員番号へ変更したいのです。

いろいろ検索してみて「dsmove」や「dsmod」を使う方法が紹介されていましたが、これらを使うと、確かに”表示名”は変更されるのですが、ドメインログオンする時のユーザー名は変わっていないのです。
具体的には”dsadd user cn=yamadatarou,ou=sales,ou=domain,ou=local -desc 山田太郎 -ln 山田 -fn 太郎 -pwd xxxx”などをユーザー数作って登録しました。これらのアカウントを訳あって社員番号に変更したいのですが、”dsmove user cn=yamadatarou,ou=sales,ou=domain,ou=local -newname 1234”とすると「ADユーザーとコンピュータ」では名称が変わっています。が、ログオンは相変わらずyamadatarouでないと出来ません。
確認に「ADユーザーとコンピュータ」の"1234"のログオンユーザー名を見てみると変わっていません。

ご存知の方おられましたら教えてください。
乱筆失礼します。
ぴよこ
ベテラン
会議室デビュー日: 2006/12/11
投稿数: 61
投稿日時: 2008-02-08 10:27
確かdsmoveではsamaccountnameの変更は出来なかったような気がします。(嘘だったらごめんなさい)

SamAccountName、UserPrincipalName変更には以下のページが参考になると思います。
ユーザーの sAMAccountName を変更する方法はありますか
※リンク先のスクリプトuserPrincipalNameの@以下が抜けていますので注意。

める
会議室デビュー日: 2008/01/30
投稿数: 8
投稿日時: 2008-02-08 16:15
ぴよこさんいつもありがとうございます。
"SamAccountName"だったんですね。勉強になりました。

ご紹介いただいたサイトをもとに以下のxxx.vbsを作成しました(以下4行)。

Set objUser = WScript.GetObject("cn=yamadatarou,ou=sales,dc=domain,dc=local")
objUser.sAMAccountName = "1234"
objUser.userPrincipalName = "1234@Fabrikam.com"
objUser.SetInfo

実行したところ1行目でエラーとなり、"オートメーションの操作中に・・・"と出ます。
GetObjectのパラメータが存在しないのが理由らしいのですがこのDNはdsquery userコマンドで引っ張ったものをコピペしてますので間違いなく存在しています。
スクリプトはあまり理解できていませんが、このパラメータの部分はパスがよく使われているようですね。コピペなので書式などに間違いはないと思うのですがどこかおかしいでしょうか?
ご指摘よろしくお願いします。
ぴよこ
ベテラン
会議室デビュー日: 2006/12/11
投稿数: 61
投稿日時: 2008-02-08 17:30
Scripting Guyさんはよく間違えるんです。
LDAP://が抜けてますね。

コード:

Set objUser = GetObject("LDAP://cn=yamadatarou,ou=sales,dc=domain,dc=local")
objUser.sAMAccountName = "1234"
objUser.userPrincipalName = "1234@Fabrikam.com"
objUser.SetInfo



[ メッセージ編集済み 編集者: ぴよこ 編集日時 2008-02-08 17:32 ]
める
会議室デビュー日: 2008/01/30
投稿数: 8
投稿日時: 2008-02-08 19:14
ありがとうございます。解消できました。
バッチ処理をしたかったので引数を読み込む形に変えてみました。
形はおそらくめちゃくちゃだと思いますが私のようなレベルの方の参考になればと思い貼り付けておきます。

*** setsid.vbs ***
Set args = Wscript.arguments
strDNph = args.item(0) & ",ou=sales,dc=domain,dc=local"

Set objUser = GetObject("LDAP://CN=" & StrDNph)
objUser.sAMAccountName = args.item(1)
objUser.userPrincipalName = args.item(1) & "@domain.local"
objUser.SetInfo

*** バッチファイル ***
setsamid yamadatarou 1111
setsamid yamadahanako 2222
setsamid satousaburou 3333
setsamid kishibeshirou 4444

ぴよこさん、Scripting Guyさん(^^; ありがとうございました。
める
会議室デビュー日: 2008/01/30
投稿数: 8
投稿日時: 2008-02-08 20:38
すみません、誤記しましたので訂正します。

*** バッチファイル ***
setsid.vbs yamadatarou 1111
setsid.vbs yamadahanako 2222
setsid.vbs satousaburou 3333
setsid.vbs kishibeshirou 4444
dodo
ベテラン
会議室デビュー日: 2004/05/12
投稿数: 99
お住まい・勤務地: 東京都渋谷区
投稿日時: 2008-02-09 06:30
「編集」ボタンを押せば、元の文章を修正できますよ。
1

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