我在这个 PowerShell 脚本中的 do while 语句有什么问题?

What's wrong with my do while statement in this PowerShell script?

do {
  $user = $null
  Write-Host "Please enter your credentials in order to connect you to the Azure AD."
  $user = Get-Credential

  if ($user -eq $null) {
    Write-Host "Bad credentials. Please retry."
  }
} while (!($user -eq $null))

脚本的这一部分将允许用户输入他的凭据。 我想检查用户是否输入了一些东西。

问题是,如果用户没有输入任何东西,脚本运行良好,用户被迫输入凭据。

但是当我输入一些东西时,我没有任何错误,但是脚本循环!它不想退出循环。

我哪里错了?

我也试过了

while ($user -eq $true)

但它也不起作用。用户,即使他没有输入任何东西,也已经过去了。

只要用户提供凭据,您的循环就会继续($user 不是 $null)。只要用户 not 提供凭据 ($user is $null),您就希望循环。

do {
    ...
} while ($user -eq $null)