PowerShell - 返回TRUE或FALSE如果Active Directory中存在用户名

时间:2014-04-10 06:56:20

标签: powershell

我想检查是否存在AD用户名,当我运行以下条件时,我收到错误'Get-ADUser:无法找到并以身份对象'这显然是由于特定用户名不存在,但是如果如果条件为假,我想回应对用户的响应。

  $username_value = "JSmith"

  IF (Get-AdUser $username_value)  {
       Run script.....
  }
  ELSE  {
       Write-Host "The username does not exist."

  }

1 个答案:

答案 0 :(得分:3)

编辑:以下答案适用于几乎所有PowerShell cmdlet,但 Get-ADUser以某种方式忽略-ErrorAction。我将它留在这里以备将来参考。在此期间,您可以使用以下代码:

$user = Get-ADUser -filter {sAMAccountName -eq $username_value}

if (!$user) {
  Write-Error "This username does not exist"
  exit # or return, whatever is appropriate
}

您可以使用-ErrorAction参数来抑制错误。在这种情况下,cmdlet的返回值应为$null,因此可以很好地强制转换为$false

$user = Get-ADUser -ErrorAction SilentlyContinue $username_value

if (!$user) {
  Write-Error "This username does not exist"
  exit # or return, whatever is appropriate
}

# run script ...