使用以下条件检查 Active Directory 用户名是否存在

Checking if Active Directory username exists using following conditions

$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"
}

如果您只是想检查用户名是否存在,那么您将测试 $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"
}
try
{
     get-aduser -f samaccountname -eq $username
     Write-Output "Username $username exists"
}
catch
{
     Write-Output "Username $username does not 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"
}