Это должно сделать необходимое.
Loop
, чтобы получить и проверить Credential
Try
- Catch
Проверка учетных данных - Повышение
Messagebox
на Failed Credential Exit
скрипт на Cancel
.
$Credential=$null
while ($Credential -eq $null) {
$Credential = Get-Credential -Username "$env:USERDNSDOMAIN\" -message "Enter Admin Password"
try {
Start-Process -FilePath cmd.exe /c -Credential $Credential
}
catch {
$Credential=$null
IF (
$([System.Windows.MessageBox]::Show('Invalid UN/PW! ?','Credential Error','OKCancel','Error')
) -eq "Cancel") { EXIT}
}
}
### Your code to launch RSAT tools here:
Мы используем while
l oop.
В то время как учетные данные равны NULL, мы получаем учетные данные, сохраняем их в виде защищенной строки в переменной, затем делаем попытку при проверке запуска процесса, если он попытается снова получить учетные данные, и мы сохраняем учетные данные в переменной как безопасная строка.
Первоначально учетные данные равны NULL
, поэтому мы их запрашиваем.
Затем мы используем Try
для проверки учетных данных, инициируя процесс как их .
Если это не удастся, мы Catch
it и 1-й снова устанавливаем учетные данные на NULL
, затем мы повышаем Windows Message Box
для пользователя, давая ему знать, что учетные данные не пройдены, и проверяем, хотят ли они повторить попытку (OK
) или Cancel
.
Если они ответят «Отмена», нет смысла продолжать Сценарий, поэтому мы просто exit
.
В противном случае мы просто go впереди с нашей oop, как запланировано