Windows

ワークグループなサーバーにユーザーアカウントを一括登録する

※2019/3/15修正(コマンドが「net start」と記載していましたが正しくは「net user」でした)

ActiveDirectoryドメインで動いていたサーバをリプレースする際にドメインではなくワークグループにしたいと言う要件。

通常はAD移行してしまうのでユーザーアカウントも登録する事はなかったのだけどワークグループとなると登録しなおし?100アカウントほどあるしそれは避けたい。

で、考えたのが「旧ADからcsvdeコマンドでエクスポートして、新サーバのPowerShellからnet userコマンドでバッチ一括登録」と言うやり方。

1.旧ADサーバでcsvdeコマンドでUsersコンテナの内容をエクスポート。
csvde -u -f user.csv -d “cn=Users,dc=domain,dc=local”

2.カンマ区切りのCSVファイルになっているので、Excelから開いて確認。
どうやら「sAMAccountName」がアカウント名、「displayName」が表示名のようなのでこれ以外の列は全部削除。

3.ちなみにcsvdeだとパスワードのエクスポートが出来ないので、現在使っているパスワードが分かれば追加し、分からなかったら適当にパスワードを決めておく。

4.次にPowerShellの実行ファイルとして利用できるように以下のように編集。
「/passwordchg:no」はユーザーによるパスワード変更禁止、「/comment:」は表示名を入れたい場合なので必要無ければ追加しなくてもOKだと思う。
A列:net user
B列:アカウント名
C列:パスワード
D列:/add
E列:/passwordchg:no
F列:/comment:"(表示名)"

5.出来たらカンマ付きcsvで保存。
その後テキストエディタでcsvファイルを開き、「,」を「 」(半角スペース)に置き換える。
最終的に以下のようなファイルが出来る。
net user (アカウント名1) (パスワード1) /add /passwordchg:no /comment:"(表示名1)"
net user (アカウント名2) (パスワード2) /add /passwordchg:no /comment:"(表示名2)"
net user (アカウント名3) (パスワード3) /add /passwordchg:no /comment:"(表示名3)"

6.後はこのファイルを「user.ps1」としてPowerShellで実行出来るスクリプトとして保存。

7.サーバー側に持っていてPowerShellを起動して、先ほどの「user.ps1」を実行すると一括登録完了!

[rakuten id="book:19566725" kw="Windows Server 2016テクノロジ入門 改訂新版 山内 和朗"]

-Windows

© 2023 longnice