MR2オーナー吉田貴幸のブログ

MR2(SW20)オーナー吉田貴幸のブログ。仕事はITインフラエンジニア。愛車の記事とIT関連の情報を発信しています

【Windows】[Powershell] パスワード生成ツール

f:id:takayuki-yoshida:20190421223552p:plain

 

はじめに

Powershellを使用してWindows標準機能のみでパスワードを生成するスクリプトを紹介します。インターネットに接続することなく、使用することができます。

 

以前掲載したこちらの記事をPowereshellスクリプトにしたものです。

www.startpassion.life

 

パスワード生成ツールの説明

パスワードの長さ8文字英数字以外の文字 (@、#、!、%、& など) を1個以上含むパスワードを生成します。

生成したパスワードをテキストファイルに出力します。ファイル名は pwdlist.txt です

 

パスワード生成ツールの作成

下記をコピーしてメモ帳に貼り付けて、デスクトップ上に保存してください。

 ファイル名:パスワード生成.ps1

#選択肢作成
$typename = "System.Management.Automation.Host.ChoiceDescription"
$yes = new-object $typename("&Yes","パスワードを表示する")
$no  = new-object $typename("&No","終了する")

$assembly= $yes.getType().AssemblyQualifiedName
$choice = new-object "System.Collections.ObjectModel.Collection``1[[$assembly]]"
$choice.add($yes)
$choice.add($no)

#ログ出力
Start-Transcript pwdlist.txt -append

write-host `n
write-host '###################################################################'
write-host '## 長さ8文字、英文字以外1文字以上を含むパスワードを5個生成します ##'
write-host '###################################################################'
write-host `n

Do {

    1..5 | ForEach-Object { Add-type -AssemblyName System.Web;[System.Web.Security.Membership]::GeneratePassword(8,1); start-sleep 1 }

    #選択プロンプトの表示
    $answer = $host.ui.PromptForChoice(">>","さらに5個表示しますか?",$choice,1)
    write-host `n
}
while ($answer -eq 0 )

#ログ停止
Stop-Transcript

 

パスワード生成ツールの実行方法

・デスクトップに保存した「パスワード生成ツール.ps1」を右クリックして、powershellで実行をクリックします。

・実行するとパスワードが5個表示されます。Yを応答するとさらに5個表示します。終了する場合はEnterキーを押します

f:id:takayuki-yoshida:20220129172913p:plain

 

デスクトップ上にpwdlist.txtが作成され、画面に表示されたパスワードが記録されています。

f:id:takayuki-yoshida:20220129173106p:plain

以上です

 

参考

ここで紹介した「パスワード生成.ps1」ファイルをZIPにしてDropboxに掲載しています。ダウンロードしてご利用ください。

www.dropbox.com

 

また、Powershellはこちらの記事を参考にして作成しました。非常にわかりやすい記事で大変参考になりました。newpops.hatenadiary.org