乱数をつかって、ランダムな文字列(パスワード風)を生成します。
$Obj_Rand_Maker = new-object random
$Obj_Rand_Maker.next(1,100)
で1~100までの乱数が得られます。
$Str_Rand_Seed_Char
に使用する全ての文字列を代入しており、.lengthで文字列の長さが取得できます。
これを組み合わせて、
$Obj_Rand_Maker.next(1,$Str_Rand_Seed_Char.length)
の乱数生成を、$Int_Target = 16回繰り返して、パスワード風な文字列を作って居ます。
特殊文字のエスケープはPowerShellでは「`」(バッククオート)をつかいます。
例:"1qaz2wsx3edc4rfv5tgb6yhn7ujm8ik,9ol.0p;/-@:\^[]!QAZ`"WSX#EDC`$RFV%TGB&YHN`'UJM(IK<)OL>P+?=``*_~{}|"
ダブルクオーテーション Double Quotation
`"
シングルクオーテーション Single Quotation
`'
バッククオーテーション Back Quotation
``
ダラー Dollar
`$
[Password_Generator.ps1]
# Windows PowerShell
$Str_Rand_Seed_Char = "1qaz2wsx3edc4rfv5tgb6yhn7ujm8ik,9ol.0p;/-@:\^[]!QAZ`"WSX#EDC`$RFV%TGB&YHN`'UJM(IK<)OL>P+?=``*_~{}|"
$Int_Target = 16
$Obj_Rand_Maker = new-object random
# Generate Random String
for ($i = 1; $i -ile $Int_Target; $i += 1)
{
$Str_Password = $Str_Password+$Str_Rand_Seed_Char[$Obj_Rand_Maker.next(1,$Str_Rand_Seed_Char.length)]
}
echo $Str_Password
# Finish
Write-Host "Finish. Please Enter..." -NoNewLine
$res = $host.UI.ReadLine()
$Obj_Rand_Maker = new-object random
$Obj_Rand_Maker.next(1,100)
で1~100までの乱数が得られます。
$Str_Rand_Seed_Char
に使用する全ての文字列を代入しており、.lengthで文字列の長さが取得できます。
これを組み合わせて、
$Obj_Rand_Maker.next(1,$Str_Rand_Seed_Char.length)
の乱数生成を、$Int_Target = 16回繰り返して、パスワード風な文字列を作って居ます。
特殊文字のエスケープはPowerShellでは「`」(バッククオート)をつかいます。
例:"1qaz2wsx3edc4rfv5tgb6yhn7ujm8ik,9ol.0p;/-@:\^[]!QAZ`"WSX#EDC`$RFV%TGB&YHN`'UJM(IK<)OL>P+?=``*_~{}|"
ダブルクオーテーション Double Quotation
`"
シングルクオーテーション Single Quotation
`'
バッククオーテーション Back Quotation
``
ダラー Dollar
`$
[Password_Generator.ps1]
# Windows PowerShell
$Str_Rand_Seed_Char = "1qaz2wsx3edc4rfv5tgb6yhn7ujm8ik,9ol.0p;/-@:\^[]!QAZ`"WSX#EDC`$RFV%TGB&YHN`'UJM(IK<)OL>P+?=``*_~{}|"
$Int_Target = 16
$Obj_Rand_Maker = new-object random
# Generate Random String
for ($i = 1; $i -ile $Int_Target; $i += 1)
{
$Str_Password = $Str_Password+$Str_Rand_Seed_Char[$Obj_Rand_Maker.next(1,$Str_Rand_Seed_Char.length)]
}
echo $Str_Password
# Finish
Write-Host "Finish. Please Enter..." -NoNewLine
$res = $host.UI.ReadLine()