私は自分のPowerShell GUIパスワードジェネレータを構築しています。しかし、私が入力に関するより詳細な制御を望むとき、私は問題に遭遇しました。 最小長入力がxより大きいかどうかを確認します。パスワードの最小長を確認する
$NumberBox1
は、パスワードの長さが設定されたテキストボックスです。 8より小さい場合は、自動的に8に設定し、ボタンをクリックするとパスワードを生成する必要があります。 テキストボックス$NumberBox1
の値を9に変更すると機能します。
## Check password length
if ($pw_length -le "7") {
$pw_length = "8"
$NumberBox1.Text = "8"
}
私はパスワードの入力を任意の長さを設定することができます上記の部分をコメントアウトした場合:値は8下または9
を超えているではないとき、それは私が権利を取得することはできません。このセクションです。以下
全コード:
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
$form1 = New-Object System.Windows.Forms.Form
$form1.Text = "Password generator"
$form1.Name = "Password generator"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 400
$System_Drawing_Size.Height = 200
$form1.ClientSize = $System_Drawing_Size
$NumberBox1 = New-Object System.Windows.Forms.TextBox
$NumberBox1.Location = New-Object System.Drawing.Size(110,20)
$NumberBox1.Size = New-Object System.Drawing.Size(50,25)
$NumberBox1.Text = "12"
$InfoBox1 = New-Object System.Windows.Forms.Label
$InfoBox1.Location = New-Object System.Drawing.Size(20,23)
$InfoBox1.Size = New-Object System.Drawing.Size(150,25)
$InfoBox1.Text = "Password length:"
$InfoBox3 = New-Object System.Windows.Forms.Label
$InfoBox3.Location = New-Object System.Drawing.Size(170,24)
$InfoBox3.Size = New-Object System.Drawing.Size(180,25)
$InfoBox3.Text = "Minimum length is always set to 8"
$TextBox1 = New-Object System.Windows.Forms.TextBox
$TextBox1.Location = New-Object System.Drawing.Size(200,140)
$TextBox1.Size = New-Object System.Drawing.Size(150,25)
$generate = New-Object System.Windows.Forms.Button
$generate.Location = New-Object System.Drawing.Size(20,140)
$generate.Size = New-Object System.Drawing.Size(150,22)
$generate.Text = "Generate password"
$InfoBox2 = New-Object System.Windows.Forms.Label
$InfoBox2.Location = New-Object System.Drawing.Size(20,165)
$InfoBox2.Size = New-Object System.Drawing.Size(360,25)
$generate.Add_Click({
$pw_length = $NumberBox1.Text
## Check password length
if ($pw_length -lt "7") {
$pw_length = "8"
$NumberBox1.Text = "8"
}
## Password with letters, numbers and punctiation
$PW_F = ([char[]](Get-Random -Input $(33..93 + 95 + 97..122) -Count $pw_length)) -join ""
$TextBox1.Text = $pw_F
$InfoBox2.Text = "Full complexity used. Length: $pw_length"
})
$form1.Controls.Add($generate)
$form1.Controls.Add($NumberBox1)
$form1.Controls.Add($TextBox1)
$form1.Controls.Add($InfoBox1)
$form1.Controls.Add($InfoBox2)
$form1.Controls.Add($InfoBox3)
$form1.Add_Shown({$form1.Activate()})
[void] $form1.ShowDialog()