季節は秋。サーバのお引越しの時季である(嘘)。
色々あって、サーバのリプレース作業を手伝っていた。OSはWindows Server 2003 R2。Unix系のOSでないのは、何か問題が発生した時に対応できる人材がいないかららしい。
新サーバにユーザアカウントを追加するに当たり、パスワードの条件が厳しくなったということで、初回ログイン用のパスワードをどうやって用意するかが問題となった。少し調べてみたところ、net userコマンドでユーザを追加するなら、オプション/randomでパスワードを自動生成できるらしい。
幸か不幸か、今回はグローバル・ドメインにユーザを追加するので、net userが使える。ということで、
mkdir log password net user hoge /random /fullname:"ほげ 太郎" /active:YES /add /domain > log\hoge.txt type log\hoge.txt | find "のパスワード" > password\hoge.txt net user piyo /random /fullname:"ぴよ 二郎" /active:YES /add /domain > log\piyo.txt type log\piyo.txt | find "のパスワード" > password\piyo.txt
みたいな感じのバッチファイルを自動生成して、net userでユーザを追加したのだが……。
/randomで生成したパスワードがNGで追加できないユーザがでてくるとは、やわらかいわき腹を突かれましたのことよなあ、てな気分だ。サンプル数が少ないので参考にならない気もするけど、全体の8.9%が失敗した*1。
多分、net userとは別の誰かがユーザ管理の処理を引き受けていて、
- net user実行時にパスワード文字列が指定されていたら、それを使う。/randomが指定されている場合は、net userの内部でランダムな文字列を生成する。
- net userは生成した文字列をパスワードとして、「別の誰か」にユーザ追加処理を依頼。
- 「別の誰か」としてはNGなパスワード文字列なので、エラーを返す。
- エラーが返ってきたので、net userは伝言ゲームで「パスワードがダメだよ」と通知する。
なんてことになっているのではないか、と妄想している。
しかし何とかならないものか。/randomは隠しコマンド(隠しオプション?)だから無理か。
*1:大人の事情でサンプル数は出せない。