Проверка существования имени пользователя Active Directory с использованием следующих условий
$lastname = "xyz"
$firstname = "abc"
$username = $lastname_$firstname -or $firstname.$lastname #error
В этой строке, как проверить эти условия?
$aduser = get-aduser -f samaccountname -eq $username
if($true){
write-host "username exist"
}
else{
write-host "user doesn't exist"
}
3 ответа
Решение
Если вы просто пытаетесь проверить, существует имя пользователя или нет, то вы должны проверить, $aduser
не является $null
,
Вам также необходимо указать sAMAccountName -eq
для каждого условия, которое может быть выполнено. И вам также нужны кавычки вокруг фильтра.
$lastname = "xyz"
$firstname = "abc"
$aduser = Get-ADUser -f "sAMAccountName -eq '$($lastname)_$firstname' -or sAMAccountName -eq '$firstname.$lastname'"
if ($aduser -ne $null) {
Write-Host "username exist"
} else {
Write-Host "user doesn't exist"
}
Я не могу проверить это в данный момент, но если у вас есть только имя и фамилия, вы можете сделать что-то вроде этого:
$aduser = Get-ADUser -filter "(GivenName -eq $firstname) -and (Surname -eq $lastname)"
if ($aduser) {
Write-Host "user exists"
} else {
Write-Host "user doesn't exist"
}
Или объединить $firstname
а также $lastname
чтобы стать полным именем пользователя и попробуйте это:
$username = "$firstname $lastname"
$aduser = Get-ADUser -filter "Name -eq $username"
if ($aduser) {
Write-Host "user exists"
} else {
Write-Host "user doesn't exist"
}
try
{
get-aduser -f samaccountname -eq $username
Write-Output "Username $username exists"
}
catch
{
Write-Output "Username $username does not exist"
}