※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テクノロジ入門 改訂新版 山内 和朗"]