mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-12-17 09:45:22 +00:00
Fix: retry password prompt on failure to prevent script halting (#3581)
* Fix: retry password prompt on failure to prevent script halting * Update Invoke-WPFInstall.ps1 * format fix
This commit is contained in:
parent
af7030d536
commit
7db0b8a857
@ -39,42 +39,54 @@ function Invoke-WPFInstall {
|
|||||||
$user = $env:USERNAME
|
$user = $env:USERNAME
|
||||||
|
|
||||||
Get-LocalUser | Where-Object Enabled -eq $true | ForEach-Object {
|
Get-LocalUser | Where-Object Enabled -eq $true | ForEach-Object {
|
||||||
try {
|
$validPassword = $false
|
||||||
$myPasswordIsBlank = $PrincipalContext.ValidateCredentials($user, $null)
|
while (-not $validPassword) {
|
||||||
} catch {
|
try {
|
||||||
$form = New-Object System.Windows.Forms.Form
|
$myPasswordIsBlank = $PrincipalContext.ValidateCredentials($user, $null)
|
||||||
$form.Text = "Set password for $user"
|
$validPassword = $true
|
||||||
$form.Size = New-Object System.Drawing.Size(500, 200)
|
} catch {
|
||||||
|
$form = New-Object System.Windows.Forms.Form
|
||||||
|
$form.Text = "Set password for $user"
|
||||||
|
$form.Size = New-Object System.Drawing.Size(500, 200)
|
||||||
|
|
||||||
$label = New-Object System.Windows.Forms.Label
|
$label = New-Object System.Windows.Forms.Label
|
||||||
$label.Text = 'Maybe a program needs to be installed in "usermode" and you have no password set, you need to set it here. After putting a password into the text box a page asking for your password might open (not right after). If you keep the text box empty, nothing will happen.
|
$label.Text = 'Admin mode install failed. Set a USER password for login and user-based installation.'
|
||||||
REMEMBER THE PASSWORD FOR THE FUTURE. YOU WILL NEED FOR STUFF AND TO LOGIN IF AUTOLOGIN ISN`T SET'
|
$label.Size = New-Object System.Drawing.Size(480, 60)
|
||||||
$label.Size = New-Object System.Drawing.Size(480, 60)
|
$label.Location = New-Object System.Drawing.Point(10, 10)
|
||||||
$label.Location = New-Object System.Drawing.Point(10, 10)
|
$form.Controls.Add($label)
|
||||||
$form.Controls.Add($label)
|
|
||||||
|
|
||||||
$passwordBox = New-Object System.Windows.Forms.TextBox
|
$passwordBox = New-Object System.Windows.Forms.TextBox
|
||||||
$passwordBox.Size = New-Object System.Drawing.Size(380, 20)
|
$passwordBox.Size = New-Object System.Drawing.Size(380, 20)
|
||||||
$passwordBox.UseSystemPasswordChar = $true
|
$passwordBox.UseSystemPasswordChar = $true
|
||||||
$passwordBox.Location = New-Object System.Drawing.Point(10, 125)
|
$passwordBox.Location = New-Object System.Drawing.Point(10, 125)
|
||||||
$form.Controls.Add($passwordBox)
|
$form.Controls.Add($passwordBox)
|
||||||
|
|
||||||
$button = New-Object System.Windows.Forms.Button
|
$button = New-Object System.Windows.Forms.Button
|
||||||
$button.Text = 'Submit'
|
$button.Text = 'Submit'
|
||||||
$button.Size = New-Object System.Drawing.Size(75, 23)
|
$button.Size = New-Object System.Drawing.Size(75, 23)
|
||||||
$button.Location = New-Object System.Drawing.Point(400, 125)
|
$button.Location = New-Object System.Drawing.Point(400, 125)
|
||||||
$button.Add_Click({
|
$button.Add_Click({
|
||||||
$password = $passwordBox.Text | ConvertTo-SecureString -AsPlainText -Force
|
$password = $passwordBox.Text | ConvertTo-SecureString -AsPlainText -Force
|
||||||
if ($password) {
|
if ($password) {
|
||||||
Set-LocalUser -Name $user -Password $password
|
try {
|
||||||
$Form.Close()
|
Set-LocalUser -Name $user -Password $password
|
||||||
} else {
|
$validPassword = $PrincipalContext.ValidateCredentials($user, $passwordBox.Text)
|
||||||
[System.Windows.Forms.MessageBox]::Show('No password entered!')
|
if ($validPassword) {
|
||||||
|
$form.Close()
|
||||||
|
} else {
|
||||||
|
[System.Windows.Forms.MessageBox]::Show('Invalid password! Please try again.')
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
[System.Windows.Forms.MessageBox]::Show('Error setting password!')
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
[System.Windows.Forms.MessageBox]::Show('No password entered!')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
$form.Controls.Add($button)
|
||||||
|
$form.ShowDialog() | Out-Null
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
$form.Controls.Add($button)
|
|
||||||
$form.ShowDialog() | Out-Null
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Show-WPFInstallAppBusy -text "Installing apps..."
|
Show-WPFInstallAppBusy -text "Installing apps..."
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user