はじめに
最近はセキュリティ強化の一環で、パスワードで利用する文字列に「xxx文字以上」「意味のないランダムもの」「記号はxxx文字含める」「前回、前々回で利用したものは再利用不可」etcなど制限がかけられている場合があります。
制限を回避するパスワードをいちいち考えるのも大変なので、自動生成コマンドを探してみました。
環境
- PowerShell2.0
コマンド
Add-type -AssemblyName System.Web;
[System.Web.Security.Membership]::GeneratePassword(25,3);
実行結果
^mfi}*%AO^SHV)lKdTX%NzZ$m
説明
Add-type -AssemblyName System.Web;
GeneratePasswordメソッドを利用するためにアセンブリをロードします。
[System.Web.Security.Membership]::GeneratePassword(25,3);
- 第一引数(Int32)
生成する文字列の長さです。1~128の間で指定します。 - 第二引数(Int32)
生成する文字列に含まれる記号の最小数です。記号は「!@#$%^&*()_-+=[{]};:<>|./?」が利用されます。
最小数なので、よくある「何個以上記号を含む」というケースに対応出来ません。
参考
[Microsoft] (https://msdn.microsoft.com/ja-jp/library/system.web.security.membership.generatepassword(v=vs.110).aspx)