高見知英の技術ログ

技術関係のログをQiitaから移行してきました。プログラミングのほか、使っているアプリの細かい仕様についてなど書いていきます。

PowerShellでパスワードを生成する(.NET Coreな環境でも動くバージョン)

表題の通りですがPowerShellでパスワードを生成する方法です。

PowerShellでパスワードを生成するというと、多くのサイトでSystem.Web.Security.Membership#GeneratePassword()メソッドを使う方法が紹介されていますが、.NET Coreのみが入っているような環境だと、このメソッドが存在しないため、パスワードの生成ができません。

ということで、上記メソッドを使わずにパスワードを生成するメソッドを作ってみました。

gist.github.com

やっていること

引数より英字、数字、記号の三種の要素をパスワードに含めるか、文字数は何文字かを指定し、含める文字種を変数に格納、その後、その中からランダムに文字を出力するというコードとなります。

同じ文字は2度と使わないような仕様になっているため、指定した文字種に存在する文字以上の長さの文字数を指定しても、文字種の文字数以上の値は出力されません。

便利な使い方

いちおう上記コードのコメントにも書きましたが・・・

  • 関数をのあとに| clipというコマンドを付け加える→そのままクリップボードにコピーする
  • Microsoft.PowerShell_profile.ps1(WindowsPowerShellまたはPowerShellフォルダ)に書き加えると、どこでも使えるようになる

そんなに使わないサービスだけどとりあえずパスワードはそこそこに強固なものを使っておきたい という場合に使ってみると便利かもしれません。

参照内容