Hi again,
Thanks a lot!!
This does the trick, there is only a minor issue - I need to click the OK button twice when the two passwords match. Am I missing something - or is this the price to pay?
In any case I'm very grateful for the tip as I now can test this properly :-)
best regards Tor
I paste in my code below:
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
function frGetNewUserCreds {
$form = New-Object System.Windows.Forms.Form
$form.Text = 'Create local user....'
$form.Size = New-Object System.Drawing.Size(300,300)
$form.StartPosition = 'CenterScreen'
$okButton = New-Object System.Windows.Forms.Button
$okButton.Location = New-Object System.Drawing.Point(75,230)
$okButton.Size = New-Object System.Drawing.Size(75,23)
$okButton.Text = 'OK'
$form.AcceptButton = $okButton
$form.Controls.Add($okButton)
$cancelButton = New-Object System.Windows.Forms.Button
$cancelButton.Location = New-Object System.Drawing.Point(150,230)
$cancelButton.Size = New-Object System.Drawing.Size(75,23)
$cancelButton.Text = 'Cancel'
$cancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)
$PasswordBox = New-Object System.Windows.Forms.MaskedTextBox
$PasswordBox.Location = New-Object System.Drawing.Point(10,140)
$PasswordBox.PasswordChar = '*'
$PasswordBox.Size = New-Object System.Drawing.Size(150,20)
$form.Controls.Add($PasswordBox)
$PasswordBox2 = New-Object System.Windows.Forms.MaskedTextBox
$PasswordBox2.Location = New-Object System.Drawing.Point(10,190)
$PasswordBox2.PasswordChar = '*'
$PasswordBox2.Size = New-Object System.Drawing.Size(150,20)
$form.Controls.Add($PasswordBox2)
$PasswordBox.Text = "password1"
$PasswordBox2.Text = "password2"
$form.Topmost = $true
$form.Add_Shown({$PasswordBox.Select()})
$okButton.add_click({
if ((-not ($PasswordBox.Text -ceq $PasswordBox2.Text)) -OR ($PasswordBox.Text -eq "")) {
if ($PasswordBox.Text -eq "") {
[System.Windows.Forms.MessageBox]::Show("Passwords cannot be empty")
} else {
[System.Windows.Forms.MessageBox]::Show("Passwords didn’t match. Please try again.")
}
}
else
{
$okButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
}
})
$result = $form.ShowDialog()
return $Result, $FullNameBox.Text, $UsernameBox.Text, $PasswordBox.Text, $PasswordBox2.Text
}
$Result, $FullName, $username, $password, $password2 = frGetNewUserCreds
write-host "`nReturned parameters: $Result $FullName $username $password $password2"