Linux でランダムなパスワードを生成するために expect に付属しているmkpasswd*1 を使っている人は多いと思います。
今日はこれを単純にWindows のコマンドラインで使うことができないかと思って、いろいろと試行錯誤してみました。
† mkpasswd はバイナリでなく Tcl スクリプト
mkpasswd は単純なアプリなので「どこかに mkpasswd.exe が落ちているのでは?」と思ったのですが、そう単純な話はありませんでした。
実は mkpasswd の実体は Tcl スクリプト(Executable file example/mkpasswd)だったのです。
仕方が無いので、これをランタイムと一体化してビルドする方法がないかと思って調べてみたら「tclkitを使って単一exeファイルを作る。」というエントリを見つけました。
ちょっと古いですが、基本的には現在でもこれと同じ方法が使えます。
ビルドに必要となる tclkitsh や sdx については、以下で配布されているものを利用することにしました。
† 一撃でビルドできる bat にしてみた
ビルドの手順は以外と煩雑なので、Windows のバッチファイルに纏めてみました。
以下のファイルをダウンロードして実行すると、mkpasswd.exe が生成されます。
いちおうダウンロードしたファイルの SHA256 を見ているので、おかしなファイルは生成されないはずですが利用は自己責任です。
また、オリジナル版ではローカルユーザーのパスワードを変更する機能がついていますが、この部分は必要ないのでパッチを当てて削除してあります。
build_mkpasswd.bat
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10552
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。