我想检查是否存在AD用户名,当我运行以下条件时,我收到错误'Get-ADUser:无法找到并以身份对象'这显然是由于特定用户名不存在,但是如果如果条件为假,我想回应对用户的响应。
$username_value = "JSmith"
IF (Get-AdUser $username_value) {
Run script.....
}
ELSE {
Write-Host "The username does not exist."
}
答案 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 ...