表題の通りですがPowerShellでパスワードを生成する方法です。
PowerShellでパスワードを生成するというと、多くのサイトでSystem.Web.Security.Membership#GeneratePassword()
メソッドを使う方法が紹介されていますが、.NET Coreのみが入っているような環境だと、このメソッドが存在しないため、パスワードの生成ができません。
ということで、上記メソッドを使わずにパスワードを生成するメソッドを作ってみました。
やっていること
引数より英字、数字、記号の三種の要素をパスワードに含めるか、文字数は何文字かを指定し、含める文字種を変数に格納、その後、その中からランダムに文字を出力するというコードとなります。
同じ文字は2度と使わないような仕様になっているため、指定した文字種に存在する文字以上の長さの文字数を指定しても、文字種の文字数以上の値は出力されません。
便利な使い方
いちおう上記コードのコメントにも書きましたが・・・
- 関数をのあとに
| clip
というコマンドを付け加える→そのままクリップボードにコピーする Microsoft.PowerShell_profile.ps1
(WindowsPowerShell
またはPowerShell
フォルダ)に書き加えると、どこでも使えるようになる
そんなに使わないサービスだけどとりあえずパスワードはそこそこに強固なものを使っておきたい という場合に使ってみると便利かもしれません。