Я пытаюсь проверить ввод пользователя с помощью Do-until
я хочу, чтобы программа продолжала цикл до тех пор, пока не был введен правильный ввод, который работает, когда пользователи дают какой-либо ввод независимо от того, что это такое, но когда значение пустое ""
, я застреваю в бесконечном цикле, который продолжает давать мне эта ошибка
The user does exist in AD:
samaccountname: 'the username'
Full Name: 'the fullname'
get-aduser : The search filter cannot be recognized
At line:6 char:9
+ $user = get-aduser -Filter "samaccountname -eq '$SiteOwner' -OR name -eq '$SiteO ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-ADUser], ADException
+ FullyQualifiedErrorId : ActiveDirectoryServer:8254,Microsoft.ActiveDirectory.Management.Commands.GetADUser
это мой код:
Import-Module ActiveDirectory
Do{
$SiteOwner = Read-Host 'OwnerAlias'
Do {
$user = get-aduser -Filter "samaccountname -eq '$SiteOwner' -OR name -eq '$SiteOwner'"
If (!$user) {
"The user does not exist in AD"
}
Else {
"The user does exist in AD:`nsamaccountname: $($user.samaccountname)`nFull Name: $($user.name)"
}
}While (($null -eq $SiteOwner) -or ( "" -eq $SiteOwner))
}Until ($user)
что я делаю не так?