powershell - 基本循环帮助 - Powershell
问题描述
在这里完成 Powershell Noobie。
我有一个.bat
要转换为 Powershell 的文件。
基本上在运行时;它要求用户输入他们的 Active Directory 凭据。一经验证;dhcpmgmt.msc
它以提升的域用户身份启动 RSAT 工具(例如:) 。
但是,如果凭据不正确 ( if %ERRORLEVEL% EQU 5
);它执行 GOTO anecho "Incorrect username and password"
然后循环请求用户再次输入他们的凭据。
当我使用:
do
{
Start-Process -FilePath C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Credential (Get-Credential "$env:USERDNSDOMAIN\") -ArgumentList "C:\Windows\System32\dhcpmgmt.msc"
} until ($response -eq $null)
有用。但是如果我输入了错误的密码;窗口关闭。
我想要用户名/密码不正确的通知信息,然后重新引导他们再次输入他们的凭据。这将循环直到用户输入正确的凭据或简单地单击取消按钮。
非常感谢任何帮助/指导。提前致谢!
解决方案
您可以在 while 循环中运行它以继续要求凭据,直到它们有效为止。
- 获取凭据
- 使用新的信誉运行 powershell
- 如果失败,请要求新的凭据。如果没有,就跳出循环。
while ($true)
{
$userCreds = Get-Credential "$env:USERDNSDOMAIN\"
try {
Start-Process powershell -Credential $userCreds -ArgumentList "C:\Windows\System32\dhcpmgmt.msc" -ErrorAction Stop
break
}
catch {
Write-Output "Invalid Credentials"
Write-Output "Enter new credentials?"
if ((Read-Host) -ne "Yes") { break }
}
}
推荐阅读
- svg - 水平对齐嵌套的 SVG
- java - 将适配器代码从 Java 转换为 Kotlin 时的问题
- mysql - 使用带有变量的 If Then 运行不同的 SQL 语句
- python - 无法使用 Python 删除字符串上的空格
- sql - 根据其他 4 个标志列更新标志列
- python - 交错 nd numpy 数组的最后一个轴
- javascript - cypress cy.route 行为不一致
- javascript - Javascript .sort 按时间排序不适用于数组?
- sql - 使用 regexp_extract_all 的 PySpark SQL 问题
- ios - Swift,imagepicker翻转的原因是什么