はじめに
Powershellを使用してWindows標準機能のみでパスワードを生成するスクリプトを紹介します。インターネットに接続することなく、使用することができます。
以前掲載したこちらの記事をPowereshellスクリプトにしたものです。
パスワード生成ツールの説明
パスワードの長さ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キーを押します
デスクトップ上にpwdlist.txtが作成され、画面に表示されたパスワードが記録されています。
以上です
参考
ここで紹介した「パスワード生成.ps1」ファイルをZIPにしてDropboxに掲載しています。ダウンロードしてご利用ください。
また、Powershellはこちらの記事を参考にして作成しました。非常にわかりやすい記事で大変参考になりました。newpops.hatenadiary.org