Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 验证广告中的用户,如果未找到用户,请再次询问_Loops_Powershell_Dsquery - Fatal编程技术网

Loops 验证广告中的用户,如果未找到用户,请再次询问

Loops 验证广告中的用户,如果未找到用户,请再次询问,loops,powershell,dsquery,Loops,Powershell,Dsquery,我正在尝试使用samaccountname在AD中查找特定用户如果我键入了错误的帐户,我希望问题重复,直到找到该用户,告诉我用户名并暂停,直到按下一个键。这是我到目前为止所做的,但它不起作用。我还是个笨蛋 do{ $User=Read-Host "Enter SamAcountname"} if (dsquery user -samid $User) { trap {$_ | write-host "Found user $_" } else { trap {$_ | write-host

我正在尝试使用samaccountname在AD中查找特定用户如果我键入了错误的帐户,我希望问题重复,直到找到该用户,告诉我用户名并暂停,直到按下一个键。这是我到目前为止所做的,但它不起作用。我还是个笨蛋

do{
$User=Read-Host "Enter SamAcountname"}

if (dsquery user -samid $User)
{
trap {$_ | write-host "Found user $_"
}
else 
{
trap {$_ | write-host "User not found!" 
}
{
until ( $_-eq "found user")
}

Write-Host "Press any key to continue ..."

$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
这应该做到:

$prompt = "enter samaccountname"

do{    
    $User = Read-Host $prompt
} while (!$(dsquery user -samid $User;$prompt="User '$user' was not found, try again"))

$User

太棒了!除了(!$(dsquery和$User;$prompt),我什么都懂。这是什么意思?谢谢!while块应该是:(!(dsquery和$User))它基本上检查是否有输出,并否定答案,因此可以将条件评估为:只要没有输出重新提示,$prompt分配将更新提示文本。如果您将两个命令都放入其中,而它将失败,$()是允许两个命令都运行的一种变通方法。太棒了。感谢您的帮助!